/**
 *
 */
import OpenApi;
import OpenApi.OpenApiUtil;

extends OpenApi;


init(config: OpenApiUtil.Config){
  super(config);
  @endpointRule = '';
  
  checkConfig(config);
  @endpoint = getEndpoint('ocr-api', @regionId, @endpointRule, @network, @suffix, @endpointMap, @endpoint);
}

function getEndpoint(productId: string, regionId: string, endpointRule: string, network: string, suffix: string, endpointMap: map[string]string, endpoint: string) throws: string{
  if (!$isNull(endpoint)) {
    return endpoint;
  }
  
  if (!$isNull(endpointMap) && !$isNull(endpointMap[regionId])) {
    return endpointMap[regionId];
  }
  return OpenApiUtil.getEndpointRules(productId, regionId, endpointRule, network, suffix);
}

model DataSubImagesFigureInfoValue = {
  figureCount?: int32(name='FigureCount', example='3'),
  figureDetails?: [ 
    {
      type?: string(name='Type', example='face'),
      data?: any(name='Data', example='“”'),
      figurePoints?: [ 
        {
          x?: int32(name='X', example='100'),
          y?: int32(name='Y', example='200'),
        }
      ](name='FigurePoints'),
      figureRect?: {
        centerX?: int32(name='CenterX', example='100'),
        centerY?: int32(name='CenterY', example='200'),
        width?: int32(name='Width', example='50'),
        height?: int32(name='Height', example='50'),
      }(name='FigureRect'),
      figureAngle?: int32(name='FigureAngle', example='0'),
    }
  ](name='FigureDetails'),
}

model DataSubImagesKvInfoKvDetailsValue = {
  keyName?: string(name='KeyName', example='"address"'),
  keyConfidence?: int32(name='KeyConfidence', example='100'),
  value?: string(name='Value'),
  valueConfidence?: int32(name='ValueConfidence', example='98'),
  valuePoints?: [ 
    {
      x?: int32(name='X', example='100'),
      y?: int32(name='Y', example='200'),
    }
  ](name='ValuePoints'),
  valueRect?: {
    centerX?: int32(name='CenterX', example='100'),
    centerY?: int32(name='CenterY', example='200'),
    width?: int32(name='Width', example='50'),
    height?: int32(name='Height', example='50'),
  }(name='ValueRect'),
  valueAngle?: int32(name='ValueAngle', example='0'),
}

model RecognizeAdvancedRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  needSortPage?: boolean(name='NeedSortPage', example='false'),
  noStamp?: boolean(name='NoStamp', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputFigure?: boolean(name='OutputFigure', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  paragraph?: boolean(name='Paragraph', example='false'),
  row?: boolean(name='Row', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeAdvancedResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data', example='{ 	"content": "2017年河北区实验小学", 	"height": 3509, 	"orgHeight": 3509, 	"orgWidth": 2512, 	"prism_version": "1.0.9", 	"prism_wnum": 126, 	"prism_wordsInfo": [{ 		"angle": -89, 		"direction": 0, 		"height": 541, 		"pos": [{ 			"x": 982, 			"y": 223 		}, { 			"x": 1522, 			"y": 223 		}, { 			"x": 1522, 			"y": 266 		}, { 			"x": 982, 			"y": 266 		}], 		"prob": 99, 		"width": 43, 		"word": "2017年河北区实验小学", 		"x": 1230, 		"y": -26 	}], 	"width": 2512 }'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeAdvancedResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeAdvancedResponseBody(name='body'),
}

/**
 * @summary 全文识别高精版
 *
 * @param request RecognizeAdvancedRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeAdvancedResponse
 */
async function recognizeAdvancedWithOptions(request: RecognizeAdvancedRequest, runtime: $RuntimeOptions): RecognizeAdvancedResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.needSortPage)) {
    query['NeedSortPage'] = request.needSortPage;
  }
  if (!$isNull(request.noStamp)) {
    query['NoStamp'] = request.noStamp;
  }
  if (!$isNull(request.outputCharInfo)) {
    query['OutputCharInfo'] = request.outputCharInfo;
  }
  if (!$isNull(request.outputFigure)) {
    query['OutputFigure'] = request.outputFigure;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.paragraph)) {
    query['Paragraph'] = request.paragraph;
  }
  if (!$isNull(request.row)) {
    query['Row'] = request.row;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeAdvanced',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 全文识别高精版
 *
 * @param request RecognizeAdvancedRequest
 * @return RecognizeAdvancedResponse
 */
async function recognizeAdvanced(request: RecognizeAdvancedRequest): RecognizeAdvancedResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeAdvancedWithOptions(request, runtime);
}

model RecognizeAirItineraryRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1hBCIcBr0gK0jSZFnXXbRRXXa-1833-785.png'),
  body?: readable(name='body'),
}

model RecognizeAirItineraryResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeAirItineraryResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeAirItineraryResponseBody(name='body'),
}

/**
 * @summary 航空行程单
 *
 * @param request RecognizeAirItineraryRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeAirItineraryResponse
 */
async function recognizeAirItineraryWithOptions(request: RecognizeAirItineraryRequest, runtime: $RuntimeOptions): RecognizeAirItineraryResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeAirItinerary',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 航空行程单
 *
 * @param request RecognizeAirItineraryRequest
 * @return RecognizeAirItineraryResponse
 */
async function recognizeAirItinerary(request: RecognizeAirItineraryRequest): RecognizeAirItineraryResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeAirItineraryWithOptions(request, runtime);
}

model RecognizeAllTextRequest {
  advancedConfig?: {
    isHandWritingTable?: boolean(name='IsHandWritingTable', example='false'),
    isLineLessTable?: boolean(name='IsLineLessTable', example='false'),
    outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
    outputParagraph?: boolean(name='OutputParagraph', example='false'),
    outputRow?: boolean(name='OutputRow', example='false'),
    outputTable?: boolean(name='OutputTable', example='false'),
    outputTableExcel?: boolean(name='OutputTableExcel', example='false'),
    outputTableHtml?: boolean(name='OutputTableHtml', example='false'),
  }(name='AdvancedConfig'),
  idCardConfig?: {
    llmRec?: boolean(name='Llm_rec'),
    outputIdCardQuality?: boolean(name='OutputIdCardQuality', example='false'),
  }(name='IdCardConfig'),
  internationalBusinessLicenseConfig?: {
    country?: string(name='Country'),
  }(name='InternationalBusinessLicenseConfig'),
  internationalIdCardConfig?: {
    country?: string(name='Country', example='India'),
  }(name='InternationalIdCardConfig'),
  multiLanConfig?: {
    languages?: string(name='Languages', example='eng,chn'),
  }(name='MultiLanConfig'),
  outputBarCode?: boolean(name='OutputBarCode', example='false'),
  outputCoordinate?: string(name='OutputCoordinate', example='false'),
  outputFigure?: boolean(name='OutputFigure', example='false', nullable=true),
  outputKVExcel?: boolean(name='OutputKVExcel', example='false'),
  outputOricoord?: boolean(name='OutputOricoord', example='false'),
  outputQrcode?: boolean(name='OutputQrcode', example='false', nullable=true),
  outputStamp?: boolean(name='OutputStamp', example='false', nullable=true),
  pageNo?: int32(name='PageNo', example='1'),
  tableConfig?: {
    isHandWritingTable?: boolean(name='IsHandWritingTable'),
    isLineLessTable?: boolean(name='IsLineLessTable'),
    outputTableExcel?: boolean(name='OutputTableExcel'),
    outputTableHtml?: boolean(name='OutputTableHtml'),
  }(name='TableConfig'),
  type?: string(name='Type', description='This parameter is required.', example='Advanced'),
  url?: string(name='Url', example='https://example.png'),
  body?: readable(name='body'),
}

model RecognizeAllTextShrinkRequest {
  advancedConfigShrink?: string(name='AdvancedConfig'),
  idCardConfigShrink?: string(name='IdCardConfig'),
  internationalBusinessLicenseConfigShrink?: string(name='InternationalBusinessLicenseConfig'),
  internationalIdCardConfigShrink?: string(name='InternationalIdCardConfig'),
  multiLanConfigShrink?: string(name='MultiLanConfig'),
  outputBarCode?: boolean(name='OutputBarCode', example='false'),
  outputCoordinate?: string(name='OutputCoordinate', example='false'),
  outputFigure?: boolean(name='OutputFigure', example='false', nullable=true),
  outputKVExcel?: boolean(name='OutputKVExcel', example='false'),
  outputOricoord?: boolean(name='OutputOricoord', example='false'),
  outputQrcode?: boolean(name='OutputQrcode', example='false', nullable=true),
  outputStamp?: boolean(name='OutputStamp', example='false', nullable=true),
  pageNo?: int32(name='PageNo', example='1'),
  tableConfigShrink?: string(name='TableConfig'),
  type?: string(name='Type', description='This parameter is required.', example='Advanced'),
  url?: string(name='Url', example='https://example.png'),
  body?: readable(name='body'),
}

model RecognizeAllTextResponseBody = {
  code?: string(name='Code', example='400'),
  data?: {
    algoServer?: [ string ](name='AlgoServer'),
    algoVersion?: string(name='AlgoVersion', example='""'),
    content?: string(name='Content'),
    debugInfo?: any(name='DebugInfo', example='""'),
    height?: int32(name='Height', example='2000'),
    isMixedMode?: boolean(name='IsMixedMode', example='false'),
    kvExcelUrl?: string(name='KvExcelUrl', example='https://example.xlsx'),
    pageNo?: int32(name='PageNo', example='1'),
    subImageCount?: int32(name='SubImageCount', example='2'),
    subImages?: [ 
      {
        angle?: int32(name='Angle', example='0'),
        barCodeInfo?: {
          barCodeCount?: int32(name='BarCodeCount', example='2'),
          barCodeDetails?: [ 
            {
              barCodeAngle?: int32(name='BarCodeAngle', example='0'),
              barCodePoints?: [ 
                {
                  x?: int32(name='X', example='100'),
                  y?: int32(name='Y', example='200'),
                }
              ](name='BarCodePoints'),
              barCodeRect?: {
                centerX?: int32(name='CenterX', example='100'),
                centerY?: int32(name='CenterY', example='200'),
                height?: int32(name='Height', example='10'),
                width?: int32(name='Width', example='100'),
              }(name='BarCodeRect'),
              data?: any(name='Data', example='"1100011XXXXXX"'),
              type?: string(name='Type', example='Code128'),
            }
          ](name='BarCodeDetails'),
        }(name='BarCodeInfo'),
        blockInfo?: {
          blockCount?: int32(name='BlockCount', example='12'),
          blockDetails?: [ 
            {
              blockAngle?: int32(name='BlockAngle', example='0'),
              blockConfidence?: int32(name='BlockConfidence', example='98'),
              blockContent?: string(name='BlockContent'),
              blockId?: int32(name='BlockId', example='0'),
              blockPoints?: [ 
                {
                  x?: int32(name='X', example='100'),
                  y?: int32(name='Y', example='200'),
                }
              ](name='BlockPoints'),
              blockRect?: {
                centerX?: int32(name='CenterX', example='100'),
                centerY?: int32(name='CenterY', example='200'),
                height?: int32(name='Height', example='10'),
                width?: int32(name='Width', example='50'),
              }(name='BlockRect'),
              charInfos?: [ 
                {
                  charConfidence?: int32(name='CharConfidence', example='95'),
                  charContent?: string(name='CharContent'),
                  charId?: int32(name='CharId', example='0'),
                  charPoints?: [ 
                    {
                      x?: int32(name='X', example='100'),
                      y?: int32(name='Y', example='200'),
                    }
                  ](name='CharPoints'),
                  charRect?: {
                    centerX?: int32(name='CenterX', example='100'),
                    centerY?: int32(name='CenterY', example='200'),
                    height?: int32(name='Height', example='10'),
                    width?: int32(name='Width', example='10'),
                  }(name='CharRect'),
                }
              ](name='CharInfos'),
            }
          ](name='BlockDetails'),
        }(name='BlockInfo'),
        figureInfo?: map[string]DataSubImagesFigureInfoValue(name='FigureInfo'),
        kvInfo?: {
          data?: any(name='Data'),
          kvCount?: int32(name='KvCount', example='6'),
          kvDetails?: map[string]DataSubImagesKvInfoKvDetailsValue(name='KvDetails'),
        }(name='KvInfo'),
        paragraphInfo?: {
          paragraphCount?: int32(name='ParagraphCount', example='11'),
          paragraphDetails?: [ 
            {
              blockList?: [ int32 ](name='BlockList'),
              paragraphContent?: string(name='ParagraphContent'),
              paragraphId?: int32(name='ParagraphId', example='0'),
            }
          ](name='ParagraphDetails'),
        }(name='ParagraphInfo'),
        qrCodeInfo?: {
          qrCodeCount?: int32(name='QrCodeCount', example='1'),
          qrCodeDetails?: [ 
            {
              data?: any(name='Data', example='“http://www.gsxt.gov.cn/indeXXX”'),
              qrCodeAngle?: int32(name='QrCodeAngle', example='0'),
              qrCodePoints?: [ 
                {
                  x?: int32(name='X', example='100'),
                  y?: int32(name='Y', example='200'),
                }
              ](name='QrCodePoints'),
              qrCodeRect?: {
                centerX?: int32(name='CenterX', example='100'),
                centerY?: int32(name='CenterY', example='200'),
                height?: int32(name='Height', example='100'),
                width?: int32(name='Width', example='100'),
              }(name='QrCodeRect'),
            }
          ](name='QrCodeDetails'),
        }(name='QrCodeInfo'),
        qualityInfo?: {
          completenessScore?: float(name='CompletenessScore', example='90.5'),
          isCopy?: boolean(name='IsCopy', example='false'),
          isReshoot?: boolean(name='IsReshoot', example='false'),
          qualityScore?: float(name='QualityScore', example='80.5'),
          tamperScore?: float(name='TamperScore', example='10.5'),
        }(name='QualityInfo'),
        rowInfo?: {
          rowCount?: int32(name='RowCount', example='9'),
          rowDetails?: [ 
            {
              blockList?: [ int32 ](name='BlockList'),
              rowContent?: string(name='RowContent'),
              rowId?: int32(name='RowId', example='0'),
            }
          ](name='RowDetails'),
        }(name='RowInfo'),
        stampInfo?: {
          stampCount?: int32(name='StampCount', example='2'),
          stampDetails?: [ 
            {
              data?: {
                antiFakeCode?: string(name='AntiFakeCode', example='"3205823XXXXXX"'),
                companyId?: string(name='CompanyId', example='"XXX"'),
                organizationName?: string(name='OrganizationName'),
                organizationNameEng?: string(name='OrganizationNameEng', example='""'),
                otherText?: string(name='OtherText', example='"3205823XXXXXX"'),
                taxpayerId?: string(name='TaxpayerId', example='""'),
                topText?: string(name='TopText'),
              }(name='Data'),
              stampAngle?: int32(name='StampAngle', example='0'),
              stampPoints?: [ 
                {
                  x?: int32(name='X', example='100'),
                  y?: int32(name='Y', example='200'),
                }
              ](name='StampPoints'),
              stampRect?: {
                centerX?: int32(name='CenterX', example='100'),
                centerY?: int32(name='CenterY', example='200'),
                height?: int32(name='Height', example='50'),
                width?: int32(name='Width', example='50'),
              }(name='StampRect'),
            }
          ](name='StampDetails'),
        }(name='StampInfo'),
        subImageId?: int32(name='SubImageId', example='0'),
        subImagePoints?: [ 
          {
            x?: int32(name='X', example='100'),
            y?: int32(name='Y', example='200'),
          }
        ](name='SubImagePoints'),
        subImageRect?: {
          centerX?: int32(name='CenterX', example='100'),
          centerY?: int32(name='CenterY', example='200'),
          height?: int32(name='Height', example='2000'),
          width?: int32(name='Width', example='1000'),
        }(name='SubImageRect'),
        tableInfo?: {
          tableCount?: int32(name='TableCount', example='2'),
          tableDetails?: [ 
            {
              cellCount?: int32(name='CellCount', example='29'),
              cellDetails?: [ 
                {
                  blockList?: [ int32 ](name='BlockList'),
                  cellAngle?: int32(name='CellAngle', example='0'),
                  cellContent?: string(name='CellContent'),
                  cellId?: int32(name='CellId', example='0'),
                  cellPoints?: [ 
                    {
                      x?: int32(name='X', example='100'),
                      y?: int32(name='Y', example='200'),
                    }
                  ](name='CellPoints'),
                  cellRect?: {
                    centerX?: int32(name='CenterX', example='100'),
                    centerY?: int32(name='CenterY', example='200'),
                    height?: int32(name='Height', example='20'),
                    width?: int32(name='Width', example='20'),
                  }(name='CellRect'),
                  columnEnd?: int32(name='ColumnEnd', example='5'),
                  columnStart?: int32(name='ColumnStart', example='2'),
                  rowEnd?: int32(name='RowEnd', example='0'),
                  rowStart?: int32(name='RowStart', example='0'),
                }
              ](name='CellDetails'),
              columnCount?: int32(name='ColumnCount', example='3'),
              footer?: {
                blockId?: int32(name='BlockId', example='0'),
                contents?: [ string ](name='Contents'),
              }(name='Footer'),
              header?: {
                blockId?: int32(name='BlockId', example='0'),
                contents?: [ string ](name='Contents'),
              }(name='Header'),
              rowCount?: int32(name='RowCount', example='10'),
              tableId?: int32(name='TableId', example='0'),
              tablePoints?: [ 
                {
                  x?: int32(name='X', example='100'),
                  y?: int32(name='Y', example='200'),
                }
              ](name='TablePoints'),
              tableRect?: {
                centerX?: int32(name='CenterX', example='100'),
                centerY?: int32(name='CenterY', example='200'),
                height?: int32(name='Height', example='100'),
                width?: int32(name='Width', example='100'),
              }(name='TableRect'),
            }
          ](name='TableDetails'),
          tableExcel?: string(name='TableExcel', example='https://example.xlsx'),
          tableHtml?: string(name='TableHtml', example='https://example.html'),
        }(name='TableInfo'),
        type?: string(name='Type'),
      }
    ](name='SubImages'),
    width?: int32(name='Width', example='1000'),
    xmlResult?: string(name='XmlResult', example='""'),
  }(name='Data'),
  message?: string(name='Message', example='illegalImageUrl'),
  requestId?: string(name='RequestId', example='E2A98925-DC2C-18FB-995F-BAF507XXXXXX'),
}

model RecognizeAllTextResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeAllTextResponseBody(name='body'),
}

/**
 * @summary 统一Api
 *
 * @param tmpReq RecognizeAllTextRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeAllTextResponse
 */
async function recognizeAllTextWithOptions(tmpReq: RecognizeAllTextRequest, runtime: $RuntimeOptions): RecognizeAllTextResponse {
  tmpReq.validate();
  var request = new RecognizeAllTextShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!$isNull(tmpReq.advancedConfig)) {
    request.advancedConfigShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.advancedConfig, 'AdvancedConfig', 'json');
  }
  if (!$isNull(tmpReq.idCardConfig)) {
    request.idCardConfigShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.idCardConfig, 'IdCardConfig', 'json');
  }
  if (!$isNull(tmpReq.internationalBusinessLicenseConfig)) {
    request.internationalBusinessLicenseConfigShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.internationalBusinessLicenseConfig, 'InternationalBusinessLicenseConfig', 'json');
  }
  if (!$isNull(tmpReq.internationalIdCardConfig)) {
    request.internationalIdCardConfigShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.internationalIdCardConfig, 'InternationalIdCardConfig', 'json');
  }
  if (!$isNull(tmpReq.multiLanConfig)) {
    request.multiLanConfigShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.multiLanConfig, 'MultiLanConfig', 'json');
  }
  if (!$isNull(tmpReq.tableConfig)) {
    request.tableConfigShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.tableConfig, 'TableConfig', 'json');
  }
  var query = {};
  if (!$isNull(request.advancedConfigShrink)) {
    query['AdvancedConfig'] = request.advancedConfigShrink;
  }
  if (!$isNull(request.idCardConfigShrink)) {
    query['IdCardConfig'] = request.idCardConfigShrink;
  }
  if (!$isNull(request.internationalBusinessLicenseConfigShrink)) {
    query['InternationalBusinessLicenseConfig'] = request.internationalBusinessLicenseConfigShrink;
  }
  if (!$isNull(request.internationalIdCardConfigShrink)) {
    query['InternationalIdCardConfig'] = request.internationalIdCardConfigShrink;
  }
  if (!$isNull(request.multiLanConfigShrink)) {
    query['MultiLanConfig'] = request.multiLanConfigShrink;
  }
  if (!$isNull(request.outputBarCode)) {
    query['OutputBarCode'] = request.outputBarCode;
  }
  if (!$isNull(request.outputCoordinate)) {
    query['OutputCoordinate'] = request.outputCoordinate;
  }
  if (!$isNull(request.outputFigure)) {
    query['OutputFigure'] = request.outputFigure;
  }
  if (!$isNull(request.outputKVExcel)) {
    query['OutputKVExcel'] = request.outputKVExcel;
  }
  if (!$isNull(request.outputOricoord)) {
    query['OutputOricoord'] = request.outputOricoord;
  }
  if (!$isNull(request.outputQrcode)) {
    query['OutputQrcode'] = request.outputQrcode;
  }
  if (!$isNull(request.outputStamp)) {
    query['OutputStamp'] = request.outputStamp;
  }
  if (!$isNull(request.pageNo)) {
    query['PageNo'] = request.pageNo;
  }
  if (!$isNull(request.tableConfigShrink)) {
    query['TableConfig'] = request.tableConfigShrink;
  }
  if (!$isNull(request.type)) {
    query['Type'] = request.type;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = tmpReq.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeAllText',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 统一Api
 *
 * @param request RecognizeAllTextRequest
 * @return RecognizeAllTextResponse
 */
async function recognizeAllText(request: RecognizeAllTextRequest): RecognizeAllTextResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeAllTextWithOptions(request, runtime);
}

model RecognizeBankAcceptanceRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i1/O1CN016eNk0d1ubhKP4y6gK_!!6000000006056-2-tps-631-570.png'),
  body?: readable(name='body'),
}

model RecognizeBankAcceptanceResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"data": {"出票日期": "2021-03-31", "到期日期": "2021-06-30", "票据状态": "提示收票已签收", "票据号码": "1306595000098202103", "出票人全称": "广东格林精密部件股份有限公司", "出票人账号": "9550880016631800646", "出票人开户银行": "广发银行股份有限公司惠州江北支行", "收票人全称": "限公司", "收票人账号": "2008022009200267322", "收票人开户银行": "中国工商银行惠州仲恺高新区支行", "票据金额大写": "贰拾万捌仟捌佰肆拾伍元整", "票据金额小写": "208845.00", "承兑人全称": "广发银行股份有限公司惠州江北支行", "承兑人账号": "", "承兑人开户行行号": "306595000098", "承兑人开户行名称": "广发银行股份有限公司惠州江北支行", "交易合同号": "", "能否转让": "可转让", "承兑日期": "2021-03-31"}, "ftype": 0, "height": 570, "orgHeight": 570, "orgWidth": 631, "prism_keyValueInfo": [{"key": "出票日期", "keyProb": 100, "value": "2021-03-31", "valuePos": [{"x": 148, "y": 37}, {"x": 148, "y": 48}, {"x": 86, "y": 48}, {"x": 86, "y": 37}], "valueProb": 100}, {"key": "到期日期", "keyProb": 100, "value": "2021-06-30", "valuePos": [{"x": 150, "y": 54}, {"x": 150, "y": 66}, {"x": 86, "y": 66}, {"x": 86, "y": 54}], "valueProb": 100}, {"key": "票据状态", "keyProb": 100, "value": "提示收票已签收", "valuePos": [{"x": 466, "y": 35}, {"x": 466, "y": 50}, {"x": 379, "y": 50}, {"x": 379, "y": 35}], "valueProb": 100}, {"key": "票据号码", "keyProb": 96, "value": "1306595000098202103", "valuePos": [{"x": 509, "y": 55}, {"x": 509, "y": 66}, {"x": 379, "y": 66}, {"x": 379, "y": 54}], "valueProb": 96}, {"key": "出票人全称", "keyProb": 100, "value": "广东格林精密部件股份有限公司", "valuePos": [{"x": 274, "y": 73}, {"x": 274, "y": 88}, {"x": 102, "y": 88}, {"x": 102, "y": 73}], "valueProb": 100}, {"key": "出票人账号", "keyProb": 97, "value": "9550880016631800646", "valuePos": [{"x": 220, "y": 94}, {"x": 220, "y": 106}, {"x": 104, "y": 106}, {"x": 104, "y": 94}], "valueProb": 97}, {"key": "出票人开户银行", "keyProb": 100, "value": "广发银行股份有限公司惠州江北支行", "valuePos": [{"x": 297, "y": 119}, {"x": 297, "y": 134}, {"x": 105, "y": 134}, {"x": 105, "y": 118}], "valueProb": 100}, {"key": "收票人全称", "keyProb": 100, "value": "限公司", "valuePos": [{"x": 548, "y": 75}, {"x": 588, "y": 74}, {"x": 589, "y": 86}, {"x": 548, "y": 88}], "valueProb": 100}, {"key": "收票人账号", "keyProb": 99, "value": "2008022009200267322", "valuePos": [{"x": 536, "y": 96}, {"x": 536, "y": 106}, {"x": 418, "y": 106}, {"x": 418, "y": 96}], "valueProb": 99}, {"key": "收票人开户银行", "keyProb": 100, "value": "中国工商银行惠州仲恺高新区支行", "valuePos": [{"x": 585, "y": 111}, {"x": 586, "y": 136}, {"x": 420, "y": 137}, {"x": 419, "y": 113}], "valueProb": 100}, {"key": "票据金额大写", "keyProb": 100, "value": "贰拾万捌仟捌佰肆拾伍元整", "valuePos": [{"x": 299, "y": 162}, {"x": 299, "y": 178}, {"x": 152, "y": 178}, {"x": 152, "y": 162}], "valueProb": 100}, {"key": "票据金额小写", "keyProb": 100, "value": "208845.00", "valuePos": [{"x": 299, "y": 162}, {"x": 299, "y": 178}, {"x": 152, "y": 178}, {"x": 152, "y": 162}], "valueProb": 100}, {"key": "承兑人全称", "keyProb": 100, "value": "广发银行股份有限公司惠州江北支行", "valuePos": [{"x": 309, "y": 208}, {"x": 309, "y": 234}, {"x": 178, "y": 234}, {"x": 178, "y": 208}], "valueProb": 100}, {"key": "承兑人账号", "keyProb": 98, "value": "", "valuePos": [{"x": 187, "y": 247}, {"x": 187, "y": 258}, {"x": 180, "y": 258}, {"x": 180, "y": 247}], "valueProb": 98}, {"key": "承兑人开户行行号", "keyProb": 100, "value": "306595000098", "valuePos": [{"x": 493, "y": 216}, {"x": 493, "y": 227}, {"x": 420, "y": 227}, {"x": 420, "y": 216}], "valueProb": 100}, {"key": "承兑人开户行名称", "keyProb": 100, "value": "广发银行股份有限公司惠州江北支行", "valuePos": [{"x": 419, "y": 239}, {"x": 586, "y": 239}, {"x": 586, "y": 264}, {"x": 419, "y": 264}], "valueProb": 100}, {"key": "交易合同号", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "能否转让", "keyProb": 100, "value": "可转让", "valuePos": [{"x": 143, "y": 307}, {"x": 143, "y": 322}, {"x": 105, "y": 322}, {"x": 105, "y": 307}], "valueProb": 100}, {"key": "承兑日期", "keyProb": 100, "value": "2021-03-31", "valuePos": [{"x": 404, "y": 314}, {"x": 465, "y": 314}, {"x": 465, "y": 326}, {"x": 404, "y": 326}], "valueProb": 100}], "sliceRect": {"x0": 11, "y0": 90, "x1": 614, "y1": 93, "x2": 614, "y2": 490, "x3": 10, "y3": 489}, "width": 631}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeBankAcceptanceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeBankAcceptanceResponseBody(name='body'),
}

/**
 * @summary 银承汇票识别
 *
 * @param request RecognizeBankAcceptanceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeBankAcceptanceResponse
 */
async function recognizeBankAcceptanceWithOptions(request: RecognizeBankAcceptanceRequest, runtime: $RuntimeOptions): RecognizeBankAcceptanceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeBankAcceptance',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 银承汇票识别
 *
 * @param request RecognizeBankAcceptanceRequest
 * @return RecognizeBankAcceptanceResponse
 */
async function recognizeBankAcceptance(request: RecognizeBankAcceptanceRequest): RecognizeBankAcceptanceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeBankAcceptanceWithOptions(request, runtime);
}

model RecognizeBankAccountLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB17liGda67gK0jSZFHXXa9jVXa-1375-1000.png'),
  body?: readable(name='body'),
}

model RecognizeBankAccountLicenseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeBankAccountLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeBankAccountLicenseResponseBody(name='body'),
}

/**
 * @summary 银行开户许可证识别
 *
 * @param request RecognizeBankAccountLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeBankAccountLicenseResponse
 */
async function recognizeBankAccountLicenseWithOptions(request: RecognizeBankAccountLicenseRequest, runtime: $RuntimeOptions): RecognizeBankAccountLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeBankAccountLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 银行开户许可证识别
 *
 * @param request RecognizeBankAccountLicenseRequest
 * @return RecognizeBankAccountLicenseResponse
 */
async function recognizeBankAccountLicense(request: RecognizeBankAccountLicenseRequest): RecognizeBankAccountLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeBankAccountLicenseWithOptions(request, runtime);
}

model RecognizeBankCardRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1fL.fiCzqK1RjSZPcXXbTepXa-3116-2139.jpg'),
  body?: readable(name='body'),
}

model RecognizeBankCardResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeBankCardResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeBankCardResponseBody(name='body'),
}

/**
 * @summary 银行卡识别
 *
 * @param request RecognizeBankCardRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeBankCardResponse
 */
async function recognizeBankCardWithOptions(request: RecognizeBankCardRequest, runtime: $RuntimeOptions): RecognizeBankCardResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeBankCard',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 银行卡识别
 *
 * @param request RecognizeBankCardRequest
 * @return RecognizeBankCardResponse
 */
async function recognizeBankCard(request: RecognizeBankCardRequest): RecognizeBankCardResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeBankCardWithOptions(request, runtime);
}

model RecognizeBasicRequest {
  needRotate?: boolean(name='NeedRotate'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeBasicResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeBasicResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeBasicResponseBody(name='body'),
}

/**
 * @summary 电商图片文字识别
 *
 * @param request RecognizeBasicRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeBasicResponse
 */
async function recognizeBasicWithOptions(request: RecognizeBasicRequest, runtime: $RuntimeOptions): RecognizeBasicResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeBasic',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 电商图片文字识别
 *
 * @param request RecognizeBasicRequest
 * @return RecognizeBasicResponse
 */
async function recognizeBasic(request: RecognizeBasicRequest): RecognizeBasicResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeBasicWithOptions(request, runtime);
}

model RecognizeBirthCertificationRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1P6Yll8Bh1e4jSZFhXXcC9VXa-1381-962.png'),
  body?: readable(name='body'),
}

model RecognizeBirthCertificationResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeBirthCertificationResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeBirthCertificationResponseBody(name='body'),
}

/**
 * @summary 出生证明
 *
 * @param request RecognizeBirthCertificationRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeBirthCertificationResponse
 */
async function recognizeBirthCertificationWithOptions(request: RecognizeBirthCertificationRequest, runtime: $RuntimeOptions): RecognizeBirthCertificationResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeBirthCertification',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 出生证明
 *
 * @param request RecognizeBirthCertificationRequest
 * @return RecognizeBirthCertificationResponse
 */
async function recognizeBirthCertification(request: RecognizeBirthCertificationRequest): RecognizeBirthCertificationResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeBirthCertificationWithOptions(request, runtime);
}

model RecognizeBusShipTicketRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i2/O1CN010iDcM7218ZQJtJyGX_!!6000000006940-0-tps-936-541.jpg'),
  body?: readable(name='body'),
}

model RecognizeBusShipTicketResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"angle":0,"data":{"title":"南通汽运实业集团有限公司旅客运输专用发票","formType":"发票联","invoiceCode":"132061981313","invoiceNumber":"05591493","date":"2020-01-20","time":"12:30","departureStation":"南通东站","arrivalStation":"上海总站","totalAmount":"56.00","passengerName":"颜跃第","idcardNo":"3210****2218"},"ftype":0,"height":541,"orgHeight":541,"orgWidth":936,"prism_keyValueInfo":[{"key":"title","keyProb":97,"value":"南通汽运实业集团有限公司旅客运输专用发票","valuePos":[{"x":508,"y":16},{"x":509,"y":94},{"x":91,"y":95},{"x":90,"y":18}],"valueProb":98},{"key":"formType","keyProb":100,"value":"发票联","valuePos":[{"x":388,"y":119},{"x":388,"y":157},{"x":209,"y":157},{"x":209,"y":118}],"valueProb":100},{"key":"invoiceCode","keyProb":100,"value":"132061981313","valuePos":[{"x":929,"y":127},{"x":929,"y":161},{"x":699,"y":162},{"x":698,"y":128}],"valueProb":100},{"key":"invoiceNumber","keyProb":100,"value":"05591493","valuePos":[{"x":851,"y":167},{"x":851,"y":199},{"x":696,"y":201},{"x":695,"y":168}],"valueProb":100},{"key":"date","keyProb":100,"value":"2020-01-20","valuePos":[{"x":185,"y":356},{"x":186,"y":384},{"x":62,"y":385},{"x":62,"y":358}],"valueProb":100},{"key":"time","keyProb":100,"value":"12:30","valuePos":[{"x":186,"y":385},{"x":186,"y":358},{"x":264,"y":359},{"x":264,"y":386}],"valueProb":100},{"key":"departureStation","keyProb":100,"value":"南通东站","valuePos":[{"x":66,"y":304},{"x":66,"y":271},{"x":187,"y":274},{"x":186,"y":308}],"valueProb":100},{"key":"arrivalStation","keyProb":100,"value":"上海总站","valuePos":[{"x":205,"y":306},{"x":205,"y":273},{"x":326,"y":276},{"x":325,"y":308}],"valueProb":100},{"key":"totalAmount","keyProb":100,"value":"56.00","valuePos":[{"x":402,"y":278},{"x":402,"y":306},{"x":366,"y":306},{"x":366,"y":278}],"valueProb":100},{"key":"passengerName","keyProb":97,"value":"颜跃第","valuePos":[{"x":426,"y":466},{"x":427,"y":434},{"x":516,"y":435},{"x":516,"y":468}],"valueProb":97},{"key":"idcardNo","keyProb":100,"value":"3210****2218","valuePos":[{"x":729,"y":441},{"x":729,"y":468},{"x":548,"y":468},{"x":548,"y":441}],"valueProb":100}],"sliceRect":{"x0":0,"y0":14,"x1":934,"y1":18,"x2":936,"y2":541,"x3":0,"y3":541},"width":936}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeBusShipTicketResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeBusShipTicketResponseBody(name='body'),
}

/**
 * @summary 客运车船票识别
 *
 * @param request RecognizeBusShipTicketRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeBusShipTicketResponse
 */
async function recognizeBusShipTicketWithOptions(request: RecognizeBusShipTicketRequest, runtime: $RuntimeOptions): RecognizeBusShipTicketResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeBusShipTicket',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 客运车船票识别
 *
 * @param request RecognizeBusShipTicketRequest
 * @return RecognizeBusShipTicketResponse
 */
async function recognizeBusShipTicket(request: RecognizeBusShipTicketRequest): RecognizeBusShipTicketResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeBusShipTicketWithOptions(request, runtime);
}

model RecognizeBusinessLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1nnHJNSrqK1RjSZK9XXXyypXa-564-829.png'),
  body?: readable(name='body'),
}

model RecognizeBusinessLicenseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeBusinessLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeBusinessLicenseResponseBody(name='body'),
}

/**
 * @summary 营业执照识别
 *
 * @param request RecognizeBusinessLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeBusinessLicenseResponse
 */
async function recognizeBusinessLicenseWithOptions(request: RecognizeBusinessLicenseRequest, runtime: $RuntimeOptions): RecognizeBusinessLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeBusinessLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 营业执照识别
 *
 * @param request RecognizeBusinessLicenseRequest
 * @return RecognizeBusinessLicenseResponse
 */
async function recognizeBusinessLicense(request: RecognizeBusinessLicenseRequest): RecognizeBusinessLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeBusinessLicenseWithOptions(request, runtime);
}

model RecognizeCarInvoiceRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1hC7bXCzqK1RjSZPcXXbTepXa-832-616.jpg'),
  body?: readable(name='body'),
}

model RecognizeCarInvoiceResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeCarInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeCarInvoiceResponseBody(name='body'),
}

/**
 * @summary 机动车销售发票
 *
 * @param request RecognizeCarInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeCarInvoiceResponse
 */
async function recognizeCarInvoiceWithOptions(request: RecognizeCarInvoiceRequest, runtime: $RuntimeOptions): RecognizeCarInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeCarInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 机动车销售发票
 *
 * @param request RecognizeCarInvoiceRequest
 * @return RecognizeCarInvoiceResponse
 */
async function recognizeCarInvoice(request: RecognizeCarInvoiceRequest): RecognizeCarInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeCarInvoiceWithOptions(request, runtime);
}

model RecognizeCarNumberRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeCarNumberResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId'),
}

model RecognizeCarNumberResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeCarNumberResponseBody(name='body'),
}

/**
 * @summary 车牌识别
 *
 * @param request RecognizeCarNumberRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeCarNumberResponse
 */
async function recognizeCarNumberWithOptions(request: RecognizeCarNumberRequest, runtime: $RuntimeOptions): RecognizeCarNumberResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeCarNumber',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 车牌识别
 *
 * @param request RecognizeCarNumberRequest
 * @return RecognizeCarNumberResponse
 */
async function recognizeCarNumber(request: RecognizeCarNumberRequest): RecognizeCarNumberResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeCarNumberWithOptions(request, runtime);
}

model RecognizeCarVinCodeRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeCarVinCodeResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeCarVinCodeResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeCarVinCodeResponseBody(name='body'),
}

/**
 * @summary 车辆vin码识别
 *
 * @param request RecognizeCarVinCodeRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeCarVinCodeResponse
 */
async function recognizeCarVinCodeWithOptions(request: RecognizeCarVinCodeRequest, runtime: $RuntimeOptions): RecognizeCarVinCodeResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeCarVinCode',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 车辆vin码识别
 *
 * @param request RecognizeCarVinCodeRequest
 * @return RecognizeCarVinCodeResponse
 */
async function recognizeCarVinCode(request: RecognizeCarVinCodeRequest): RecognizeCarVinCodeResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeCarVinCodeWithOptions(request, runtime);
}

model RecognizeChinesePassportRequest {
  outputFigure?: boolean(name='OutputFigure', example='true'),
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i2/O1CN01yaQKCT1PrUsTWqgSK_!!6000000001894-0-tps-271-186.jpg'),
  body?: readable(name='body'),
}

model RecognizeChinesePassportResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"data":{"passportType":"P","countryCode":"CHN","passportNumber":"E90000082","nameEn":",ZHENGJIANGANGUX","name":"","sex":"3.7F","birthPlace":"北京/BEIJIHG","nationality":"","issuePlace":"山东/SHANDON","issueAuthority":"公安部出入境管理局","mrzLine1":"POCHNZHENGJIAN<<YANGBEN<<<<<<<<<<<<<<<<<<<<<","mrzLine2":"E900000821CHN8108038F2110189NGKELMPONBPJB978","validToDate":"2921.DCF.3B","birthDate":"08.1981","issueDate":"91.1010.19"},"ftype":0,"height":186,"orgHeight":186,"orgWidth":271,"prism_keyValueInfo":[{"key":"passportType","keyProb":100,"value":"P","valuePos":[{"x":93,"y":26},{"x":93,"y":33},{"x":87,"y":33},{"x":87,"y":26}],"valueProb":100},{"key":"countryCode","keyProb":92,"value":"CHN","valuePos":[{"x":143,"y":26},{"x":143,"y":33},{"x":126,"y":33},{"x":126,"y":26}],"valueProb":92},{"key":"passportNumber","keyProb":100,"value":"E90000082","valuePos":[{"x":173,"y":29},{"x":230,"y":28},{"x":230,"y":35},{"x":174,"y":37}],"valueProb":100},{"key":"nameEn","keyProb":87,"value":",ZHENGJIANGANGUX","valuePos":[{"x":88,"y":55},{"x":89,"y":48},{"x":166,"y":49},{"x":166,"y":57}],"valueProb":87},{"key":"name","keyProb":100,"value":"","valueProb":100},{"key":"sex","keyProb":99,"value":"3.7F","valuePos":[{"x":103,"y":67},{"x":103,"y":74},{"x":87,"y":74},{"x":87,"y":67}],"valueProb":99},{"key":"birthPlace","keyProb":98,"value":"北京/BEIJIHG","valuePos":[{"x":133,"y":83},{"x":133,"y":91},{"x":87,"y":91},{"x":87,"y":83}],"valueProb":98},{"key":"nationality","keyProb":100,"value":"","valueProb":100},{"key":"issuePlace","keyProb":99,"value":"山东/SHANDON","valuePos":[{"x":136,"y":100},{"x":136,"y":108},{"x":88,"y":108},{"x":88,"y":100}],"valueProb":99},{"key":"issueAuthority","keyProb":79,"value":"公安部出入境管理局","valuePos":[{"x":87,"y":118},{"x":142,"y":118},{"x":142,"y":125},{"x":87,"y":125}],"valueProb":79},{"key":"mrzLine1","keyProb":100,"value":"POCHNZHENGJIAN<<YANGBEN<<<<<<<<<<<<<<<<<<<<<","valuePos":[{"x":12,"y":153},{"x":252,"y":152},{"x":252,"y":159},{"x":12,"y":161}],"valueProb":100},{"key":"mrzLine2","keyProb":99,"value":"E900000821CHN8108038F2110189NGKELMPONBPJB978","valuePos":[{"x":11,"y":166},{"x":253,"y":165},{"x":253,"y":173},{"x":12,"y":175}],"valueProb":99},{"key":"validToDate","keyProb":60,"value":"2921.DCF.3B","valuePos":[{"x":170,"y":107},{"x":171,"y":99},{"x":226,"y":101},{"x":225,"y":108}],"valueProb":86},{"key":"birthDate","keyProb":100,"value":"08.1981","valuePos":[{"x":209,"y":67},{"x":209,"y":74},{"x":181,"y":74},{"x":181,"y":67}],"valueProb":99},{"key":"issueDate","keyProb":82,"value":"91.1010.19","valuePos":[{"x":226,"y":83},{"x":226,"y":90},{"x":170,"y":90},{"x":170,"y":83}],"valueProb":84}],"sliceRect":{"x0":1,"y0":1,"x1":269,"y1":1,"x2":269,"y2":184,"x3":1,"y3":183},"width":271}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeChinesePassportResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeChinesePassportResponseBody(name='body'),
}

/**
 * @summary 中国护照识别
 *
 * @param request RecognizeChinesePassportRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeChinesePassportResponse
 */
async function recognizeChinesePassportWithOptions(request: RecognizeChinesePassportRequest, runtime: $RuntimeOptions): RecognizeChinesePassportResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.outputFigure)) {
    query['OutputFigure'] = request.outputFigure;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeChinesePassport',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 中国护照识别
 *
 * @param request RecognizeChinesePassportRequest
 * @return RecognizeChinesePassportResponse
 */
async function recognizeChinesePassport(request: RecognizeChinesePassportRequest): RecognizeChinesePassportResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeChinesePassportWithOptions(request, runtime);
}

model RecognizeCommonPrintedInvoiceRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i2/O1CN01XU9dTh1O4CdHxXhMw_!!6000000001651-0-tps-1437-909.jpg'),
  body?: readable(name='body'),
}

model RecognizeCommonPrintedInvoiceResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"angle":0,"data":{"title":"浙江通用机打发票","formType":"发票联","invoiceCode":"133041930432","invoiceNumber":"01488558","printedInvoiceCode":"","printedInvoiceNumber":"","invoiceDate":"2019-11-19","totalAmount":"170.00","sellerName":"嘉兴市南湖区余新镇瘦汁味餐饮店","sellerTaxNumber":"92330402MA28B4LL4B","purchaserName":"阿里巴巴俪人购(上海)电子商务有限公司","purchaserTaxNumber":"91310114312356647G","drawer":"高伟","recipient":"","remarks":"","invoiceDetails":[{"itemName":"餐饮费","unit":"","quantity":"1","unitPrice":"170.00","amount":"170.00"}]},"ftype":0,"height":909,"orgHeight":909,"orgWidth":1437,"prism_keyValueInfo":[{"key":"title","keyProb":100,"value":"浙江通用机打发票","valuePos":[{"x":431,"y":68},{"x":843,"y":62},{"x":843,"y":125},{"x":431,"y":130}],"valueProb":100},{"key":"formType","keyProb":100,"value":"发票联","valuePos":[{"x":507,"y":154},{"x":767,"y":152},{"x":768,"y":214},{"x":508,"y":215}],"valueProb":100},{"key":"invoiceCode","keyProb":100,"value":"133041930432","valuePos":[{"x":990,"y":134},{"x":1283,"y":131},{"x":1283,"y":167},{"x":991,"y":171}],"valueProb":100},{"key":"invoiceNumber","keyProb":100,"value":"01488558","valuePos":[{"x":999,"y":195},{"x":1197,"y":193},{"x":1198,"y":234},{"x":999,"y":235}],"valueProb":100},{"key":"printedInvoiceCode","keyProb":100,"value":"","valueProb":100},{"key":"printedInvoiceNumber","keyProb":100,"value":"","valueProb":100},{"key":"invoiceDate","keyProb":100,"value":"2019-11-19","valuePos":[{"x":153,"y":280},{"x":351,"y":278},{"x":351,"y":309},{"x":154,"y":312}],"valueProb":100},{"key":"totalAmount","keyProb":100,"value":"170.00","valuePos":[{"x":300,"y":752},{"x":461,"y":749},{"x":462,"y":786},{"x":300,"y":788}],"valueProb":100},{"key":"sellerName","keyProb":100,"value":"嘉兴市南湖区余新镇瘦汁味餐饮店","valuePos":[{"x":220,"y":455},{"x":612,"y":450},{"x":612,"y":482},{"x":221,"y":488}],"valueProb":100},{"key":"sellerTaxNumber","keyProb":97,"value":"92330402MA28B4LL4B","valuePos":[{"x":224,"y":511},{"x":476,"y":509},{"x":477,"y":537},{"x":225,"y":539}],"valueProb":97},{"key":"purchaserName","keyProb":98,"value":"阿里巴巴俪人购(上海)电子商务有限公司","valuePos":[{"x":213,"y":327},{"x":714,"y":324},{"x":715,"y":359},{"x":214,"y":363}],"valueProb":98},{"key":"purchaserTaxNumber","keyProb":100,"value":"91310114312356647G","valuePos":[{"x":221,"y":406},{"x":480,"y":402},{"x":481,"y":432},{"x":221,"y":435}],"valueProb":100},{"key":"drawer","keyProb":100,"value":"高伟","valuePos":[{"x":680,"y":819},{"x":680,"y":850},{"x":627,"y":850},{"x":627,"y":819}],"valueProb":100},{"key":"recipient","keyProb":100,"value":"","valueProb":100},{"key":"remarks","keyProb":100,"value":"","valueProb":100},{"key":"invoiceDetails","keyProb":100,"value":"[{\\"itemName\\":\\"餐饮费\\",\\"unit\\":\\"\\",\\"quantity\\":\\"1\\",\\"unitPrice\\":\\"170.00\\",\\"amount\\":\\"170.00\\"}]","valueProb":100}],"sliceRect":{"x0":0,"y0":7,"x1":1416,"y1":0,"x2":1421,"y2":907,"x3":0,"y3":904},"width":1437}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeCommonPrintedInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeCommonPrintedInvoiceResponseBody(name='body'),
}

/**
 * @summary 通用机打发票识别
 *
 * @param request RecognizeCommonPrintedInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeCommonPrintedInvoiceResponse
 */
async function recognizeCommonPrintedInvoiceWithOptions(request: RecognizeCommonPrintedInvoiceRequest, runtime: $RuntimeOptions): RecognizeCommonPrintedInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeCommonPrintedInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 通用机打发票识别
 *
 * @param request RecognizeCommonPrintedInvoiceRequest
 * @return RecognizeCommonPrintedInvoiceResponse
 */
async function recognizeCommonPrintedInvoice(request: RecognizeCommonPrintedInvoiceRequest): RecognizeCommonPrintedInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeCommonPrintedInvoiceWithOptions(request, runtime);
}

model RecognizeCosmeticProduceLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeCosmeticProduceLicenseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='AA91C84E-7DB9-1951-B8FE-D830076A0473'),
}

model RecognizeCosmeticProduceLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeCosmeticProduceLicenseResponseBody(name='body'),
}

/**
 * @summary 化妆品生产许可证识别
 *
 * @param request RecognizeCosmeticProduceLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeCosmeticProduceLicenseResponse
 */
async function recognizeCosmeticProduceLicenseWithOptions(request: RecognizeCosmeticProduceLicenseRequest, runtime: $RuntimeOptions): RecognizeCosmeticProduceLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeCosmeticProduceLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 化妆品生产许可证识别
 *
 * @param request RecognizeCosmeticProduceLicenseRequest
 * @return RecognizeCosmeticProduceLicenseResponse
 */
async function recognizeCosmeticProduceLicense(request: RecognizeCosmeticProduceLicenseRequest): RecognizeCosmeticProduceLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeCosmeticProduceLicenseWithOptions(request, runtime);
}

model RecognizeCovidTestReportRequest {
  multipleResult?: boolean(name='MultipleResult', example='false'),
  url?: string(name='Url', example='http://duguang-database-public.oss-cn-hangzhou.aliyuncs.com/covid_init_covid_test_report/test_report__data_pool_15a4f85478cb1bd69a5d631b182aba69.jpg_item_0_cls_covid_test_report.jpg'),
  body?: readable(name='body'),
}

model RecognizeCovidTestReportResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"data": {"name": "张德周", "idNumber": "612401********22010", "samplingDate": "2022-03-30", "samplingTime": "330", "testOrganization": "", "testItem": "", "testResult": ""}, "ftype": 0, "height": 991, "orgHeight": 998, "orgWidth": 1076, "prism_keyValueInfo": [{"key": "name", "keyProb": 100, "value": "张德周", "valuePos": [{"x": 291, "y": 465}, {"x": 473, "y": 463}, {"x": 474, "y": 526}, {"x": 291, "y": 527}], "valueProb": 100}, {"key": "idNumber", "keyProb": 91, "value": "612401********22010", "valuePos": [{"x": 791, "y": 180}, {"x": 791, "y": 227}, {"x": 300, "y": 226}, {"x": 300, "y": 179}], "valueProb": 91}, {"key": "samplingDate", "keyProb": 100, "value": "2022-03-30", "valuePos": [{"x": 597, "y": 775}, {"x": 597, "y": 826}, {"x": 296, "y": 826}, {"x": 296, "y": 775}], "valueProb": 100}, {"key": "samplingTime", "keyProb": 100, "value": "330", "valuePos": [{"x": 412, "y": 684}, {"x": 413, "y": 741}, {"x": 268, "y": 742}, {"x": 268, "y": 686}], "valueProb": 100}, {"key": "testOrganization", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "testItem", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "testResult", "keyProb": 28, "value": "", "valuePos": [{"x": 417, "y": 873}, {"x": 417, "y": 941}, {"x": 298, "y": 941}, {"x": 298, "y": 873}], "valueProb": 28}], "sliceRect": {"x0": 0, "y0": 10, "x1": 1076, "y1": 6, "x2": 1076, "y2": 995, "x3": 0, "y3": 996}, "width": 1076}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeCovidTestReportResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeCovidTestReportResponseBody(name='body'),
}

/**
 * @summary 核算检测报告识别
 *
 * @param request RecognizeCovidTestReportRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeCovidTestReportResponse
 */
async function recognizeCovidTestReportWithOptions(request: RecognizeCovidTestReportRequest, runtime: $RuntimeOptions): RecognizeCovidTestReportResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.multipleResult)) {
    query['MultipleResult'] = request.multipleResult;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeCovidTestReport',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 核算检测报告识别
 *
 * @param request RecognizeCovidTestReportRequest
 * @return RecognizeCovidTestReportResponse
 */
async function recognizeCovidTestReport(request: RecognizeCovidTestReportRequest): RecognizeCovidTestReportResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeCovidTestReportWithOptions(request, runtime);
}

model RecognizeCtwoMedicalDeviceManageLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Hyx0MEH1gK0jSZSyXXXtlpXa-750-1000.png'),
  body?: readable(name='body'),
}

model RecognizeCtwoMedicalDeviceManageLicenseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeCtwoMedicalDeviceManageLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeCtwoMedicalDeviceManageLicenseResponseBody(name='body'),
}

/**
 * @summary 第二类医疗器械经营备案凭证
 *
 * @param request RecognizeCtwoMedicalDeviceManageLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeCtwoMedicalDeviceManageLicenseResponse
 */
async function recognizeCtwoMedicalDeviceManageLicenseWithOptions(request: RecognizeCtwoMedicalDeviceManageLicenseRequest, runtime: $RuntimeOptions): RecognizeCtwoMedicalDeviceManageLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeCtwoMedicalDeviceManageLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 第二类医疗器械经营备案凭证
 *
 * @param request RecognizeCtwoMedicalDeviceManageLicenseRequest
 * @return RecognizeCtwoMedicalDeviceManageLicenseResponse
 */
async function recognizeCtwoMedicalDeviceManageLicense(request: RecognizeCtwoMedicalDeviceManageLicenseRequest): RecognizeCtwoMedicalDeviceManageLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeCtwoMedicalDeviceManageLicenseWithOptions(request, runtime);
}

model RecognizeDocumentStructureRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  needSortPage?: boolean(name='NeedSortPage', example='false'),
  noStamp?: boolean(name='NoStamp', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  page?: boolean(name='Page', example='false'),
  paragraph?: boolean(name='Paragraph', example='false'),
  row?: boolean(name='Row', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i4/O1CN01amMFBF1GUki3NHNzI_!!6000000000626-2-tps-978-1346.png'),
  useNewStyleOutput?: boolean(name='UseNewStyleOutput', example='false'),
  body?: readable(name='body'),
}

model RecognizeDocumentStructureResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{ 	"content": "2017年河北区实验小学", 	"height": 3509, 	"orgHeight": 3509, 	"orgWidth": 2512, 	"prism_version": "1.0.9", 	"prism_wnum": 126, 	"prism_wordsInfo": [{ 		"angle": -89, 		"direction": 0, 		"height": 541, 		"pos": [{ 			"x": 982, 			"y": 223 		}, { 			"x": 1522, 			"y": 223 		}, { 			"x": 1522, 			"y": 266 		}, { 			"x": 982, 			"y": 266 		}], 		"prob": 99, 		"width": 43, 		"word": "2017年河北区实验小学", 		"x": 1230, 		"y": -26 	}], 	"width": 2512 }'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeDocumentStructureResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeDocumentStructureResponseBody(name='body'),
}

/**
 * @summary 文档结构化识别
 *
 * @param request RecognizeDocumentStructureRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeDocumentStructureResponse
 */
async function recognizeDocumentStructureWithOptions(request: RecognizeDocumentStructureRequest, runtime: $RuntimeOptions): RecognizeDocumentStructureResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.needSortPage)) {
    query['NeedSortPage'] = request.needSortPage;
  }
  if (!$isNull(request.noStamp)) {
    query['NoStamp'] = request.noStamp;
  }
  if (!$isNull(request.outputCharInfo)) {
    query['OutputCharInfo'] = request.outputCharInfo;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.page)) {
    query['Page'] = request.page;
  }
  if (!$isNull(request.paragraph)) {
    query['Paragraph'] = request.paragraph;
  }
  if (!$isNull(request.row)) {
    query['Row'] = request.row;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  if (!$isNull(request.useNewStyleOutput)) {
    query['UseNewStyleOutput'] = request.useNewStyleOutput;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeDocumentStructure',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 文档结构化识别
 *
 * @param request RecognizeDocumentStructureRequest
 * @return RecognizeDocumentStructureResponse
 */
async function recognizeDocumentStructure(request: RecognizeDocumentStructureRequest): RecognizeDocumentStructureResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeDocumentStructureWithOptions(request, runtime);
}

model RecognizeDrivingLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB18sTuNSzqK1RjSZPxXXc4tVXa-629-416.png'),
  body?: readable(name='body'),
}

model RecognizeDrivingLicenseResponseBody = {
  code?: string(name='Code', example='unmatchedImageType'),
  data?: string(name='Data'),
  message?: string(name='Message', example='The type of image didn\\\\"t match the api.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeDrivingLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeDrivingLicenseResponseBody(name='body'),
}

/**
 * @summary 驾驶证识别
 *
 * @param request RecognizeDrivingLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeDrivingLicenseResponse
 */
async function recognizeDrivingLicenseWithOptions(request: RecognizeDrivingLicenseRequest, runtime: $RuntimeOptions): RecognizeDrivingLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeDrivingLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 驾驶证识别
 *
 * @param request RecognizeDrivingLicenseRequest
 * @return RecognizeDrivingLicenseResponse
 */
async function recognizeDrivingLicense(request: RecognizeDrivingLicenseRequest): RecognizeDrivingLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeDrivingLicenseWithOptions(request, runtime);
}

model RecognizeEduFormulaRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeEduFormulaResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeEduFormulaResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeEduFormulaResponseBody(name='body'),
}

/**
 * @summary 印刷体数学公式识别
 *
 * @param request RecognizeEduFormulaRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeEduFormulaResponse
 */
async function recognizeEduFormulaWithOptions(request: RecognizeEduFormulaRequest, runtime: $RuntimeOptions): RecognizeEduFormulaResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeEduFormula',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 印刷体数学公式识别
 *
 * @param request RecognizeEduFormulaRequest
 * @return RecognizeEduFormulaResponse
 */
async function recognizeEduFormula(request: RecognizeEduFormulaRequest): RecognizeEduFormulaResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeEduFormulaWithOptions(request, runtime);
}

model RecognizeEduOralCalculationRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i4/O1CN01diDxZe21hNSkCBf5n_!!6000000007016-0-tps-2268-3024.jpg'),
  body?: readable(name='body'),
}

model RecognizeEduOralCalculationResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data', example='{"height":3024,"mathsInfo":[{"pos":[{"x":128,"y":456},{"x":481,"y":425},{"x":479,"y":526},{"x":127,"y":523}],"result":"right","title":"5 9 - 2 5 = 3 4"}],"orgHeight":3024,"orgWidth":2268,"prism_version":"1.0.9","prism_wnum":0,"prism_wordsInfo":[],"width":2268}'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeEduOralCalculationResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeEduOralCalculationResponseBody(name='body'),
}

/**
 * @summary 口算判题
 *
 * @param request RecognizeEduOralCalculationRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeEduOralCalculationResponse
 */
async function recognizeEduOralCalculationWithOptions(request: RecognizeEduOralCalculationRequest, runtime: $RuntimeOptions): RecognizeEduOralCalculationResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeEduOralCalculation',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 口算判题
 *
 * @param request RecognizeEduOralCalculationRequest
 * @return RecognizeEduOralCalculationResponse
 */
async function recognizeEduOralCalculation(request: RecognizeEduOralCalculationRequest): RecognizeEduOralCalculationResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeEduOralCalculationWithOptions(request, runtime);
}

model RecognizeEduPaperCutRequest {
  cutType?: string(name='CutType', description='This parameter is required.', example='question：题目， answer：答案'),
  imageType?: string(name='ImageType', description='This parameter is required.', example='scan：扫描图， photo：实拍图'),
  outputOricoord?: boolean(name='OutputOricoord'),
  subject?: string(name='Subject', example='default:默认, Math:数学, PrimarySchool_Math:小学数学, JHighSchool_Math: 初中数学, Chinese:语文, PrimarySchool_Chinese:小学语文, JHighSchool_Chinese:初中语文, English:英语, PrimarySchool_English:小学英语, JHighSchool_English:初中英语, Physics:物理, JHighSchool_Physics:初中物理, Chemistry: 化学, JHighSchool_Chemistry:初中化学, Biology:生物, JHighSchool_Biology:初中生物, History:历史, JHighSchool_History:初中历史, Geography:地理, JHighSchool_Geography:初中地理, Politics:政治, JHighSchool_Politics:初中政治'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeEduPaperCutResponseBody = {
  code?: string(name='Code'),
  data?: string(name='Data'),
  message?: string(name='Message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeEduPaperCutResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeEduPaperCutResponseBody(name='body'),
}

/**
 * @summary 试卷切题识别
 *
 * @param request RecognizeEduPaperCutRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeEduPaperCutResponse
 */
async function recognizeEduPaperCutWithOptions(request: RecognizeEduPaperCutRequest, runtime: $RuntimeOptions): RecognizeEduPaperCutResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.cutType)) {
    query['CutType'] = request.cutType;
  }
  if (!$isNull(request.imageType)) {
    query['ImageType'] = request.imageType;
  }
  if (!$isNull(request.outputOricoord)) {
    query['OutputOricoord'] = request.outputOricoord;
  }
  if (!$isNull(request.subject)) {
    query['Subject'] = request.subject;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeEduPaperCut',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 试卷切题识别
 *
 * @param request RecognizeEduPaperCutRequest
 * @return RecognizeEduPaperCutResponse
 */
async function recognizeEduPaperCut(request: RecognizeEduPaperCutRequest): RecognizeEduPaperCutResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeEduPaperCutWithOptions(request, runtime);
}

model RecognizeEduPaperOcrRequest {
  imageType?: string(name='ImageType', description='This parameter is required.', example='scan：扫描图， photo：实拍图'),
  outputOricoord?: boolean(name='OutputOricoord', example='false'),
  subject?: string(name='Subject', example='default:默认, Math:数学, PrimarySchool_Math:小学数学, JHighSchool_Math: 初中数学, Chinese:语文, PrimarySchool_Chinese:小学语文, JHighSchool_Chinese:初中语文, English:英语, PrimarySchool_English:小学英语, JHighSchool_English:初中英语, Physics:物理, JHighSchool_Physics:初中物理, Chemistry: 化学, JHighSchool_Chemistry:初中化学, Biology:生物, JHighSchool_Biology:初中生物, History:历史, JHighSchool_History:初中历史, Geography:地理, JHighSchool_Geography:初中地理, Politics:政治, JHighSchool_Politics:初中政治'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeEduPaperOcrResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeEduPaperOcrResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeEduPaperOcrResponseBody(name='body'),
}

/**
 * @summary 整页试卷识别
 *
 * @param request RecognizeEduPaperOcrRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeEduPaperOcrResponse
 */
async function recognizeEduPaperOcrWithOptions(request: RecognizeEduPaperOcrRequest, runtime: $RuntimeOptions): RecognizeEduPaperOcrResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.imageType)) {
    query['ImageType'] = request.imageType;
  }
  if (!$isNull(request.outputOricoord)) {
    query['OutputOricoord'] = request.outputOricoord;
  }
  if (!$isNull(request.subject)) {
    query['Subject'] = request.subject;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeEduPaperOcr',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 整页试卷识别
 *
 * @param request RecognizeEduPaperOcrRequest
 * @return RecognizeEduPaperOcrResponse
 */
async function recognizeEduPaperOcr(request: RecognizeEduPaperOcrRequest): RecognizeEduPaperOcrResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeEduPaperOcrWithOptions(request, runtime);
}

model RecognizeEduPaperStructedRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  outputOricoord?: boolean(name='OutputOricoord'),
  subject?: string(name='Subject', example='default:默认, Math:数学, PrimarySchool_Math:小学数学, JHighSchool_Math: 初中数学, Chinese:语文, PrimarySchool_Chinese:小学语文, //JHighSchool_Chinese:初中语文, English:英语, PrimarySchool_English:小学英语, JHighSchool_English:初中英语, Physics:物理, JHighSchool_Physics:初中物理   //Chemistry: 化学, JHighSchool_Chemistry:初中化学, Biology:生物, JHighSchool_Biology:初中生物, History:历史, JHighSchool_History:初中历史, Geography:地理,   //JHighSchool_Geography:初中地理, Politics:政治, JHighSchool_Politics:初中政治   "templateType": "Math"'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeEduPaperStructedResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeEduPaperStructedResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeEduPaperStructedResponseBody(name='body'),
}

/**
 * @summary 精细版结构化切题
 *
 * @param request RecognizeEduPaperStructedRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeEduPaperStructedResponse
 */
async function recognizeEduPaperStructedWithOptions(request: RecognizeEduPaperStructedRequest, runtime: $RuntimeOptions): RecognizeEduPaperStructedResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.outputOricoord)) {
    query['OutputOricoord'] = request.outputOricoord;
  }
  if (!$isNull(request.subject)) {
    query['Subject'] = request.subject;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeEduPaperStructed',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 精细版结构化切题
 *
 * @param request RecognizeEduPaperStructedRequest
 * @return RecognizeEduPaperStructedResponse
 */
async function recognizeEduPaperStructed(request: RecognizeEduPaperStructedRequest): RecognizeEduPaperStructedResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeEduPaperStructedWithOptions(request, runtime);
}

model RecognizeEduQuestionOcrRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeEduQuestionOcrResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeEduQuestionOcrResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeEduQuestionOcrResponseBody(name='body'),
}

/**
 * @summary 题目识别
 *
 * @param request RecognizeEduQuestionOcrRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeEduQuestionOcrResponse
 */
async function recognizeEduQuestionOcrWithOptions(request: RecognizeEduQuestionOcrRequest, runtime: $RuntimeOptions): RecognizeEduQuestionOcrResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeEduQuestionOcr',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 题目识别
 *
 * @param request RecognizeEduQuestionOcrRequest
 * @return RecognizeEduQuestionOcrResponse
 */
async function recognizeEduQuestionOcr(request: RecognizeEduQuestionOcrRequest): RecognizeEduQuestionOcrResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeEduQuestionOcrWithOptions(request, runtime);
}

model RecognizeEnglishRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeEnglishResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeEnglishResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeEnglishResponseBody(name='body'),
}

/**
 * @summary 英语专项识别
 *
 * @param request RecognizeEnglishRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeEnglishResponse
 */
async function recognizeEnglishWithOptions(request: RecognizeEnglishRequest, runtime: $RuntimeOptions): RecognizeEnglishResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeEnglish',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 英语专项识别
 *
 * @param request RecognizeEnglishRequest
 * @return RecognizeEnglishResponse
 */
async function recognizeEnglish(request: RecognizeEnglishRequest): RecognizeEnglishResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeEnglishWithOptions(request, runtime);
}

model RecognizeEstateCertificationRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1idy2XDZmx1VjSZFGXXax2XXa-713-1133.png'),
  body?: readable(name='body'),
}

model RecognizeEstateCertificationResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeEstateCertificationResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeEstateCertificationResponseBody(name='body'),
}

/**
 * @summary 不动产权证
 *
 * @param request RecognizeEstateCertificationRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeEstateCertificationResponse
 */
async function recognizeEstateCertificationWithOptions(request: RecognizeEstateCertificationRequest, runtime: $RuntimeOptions): RecognizeEstateCertificationResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeEstateCertification',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 不动产权证
 *
 * @param request RecognizeEstateCertificationRequest
 * @return RecognizeEstateCertificationResponse
 */
async function recognizeEstateCertification(request: RecognizeEstateCertificationRequest): RecognizeEstateCertificationResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeEstateCertificationWithOptions(request, runtime);
}

model RecognizeExitEntryPermitToHKRequest {
  outputFigure?: boolean(name='OutputFigure', example='true/false'),
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i2/O1CN01Rs4C321G2oTD7Dg1U_!!6000000000565-0-tps-1024-692.jpg'),
  body?: readable(name='body'),
}

model RecognizeExitEntryPermitToHKResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"data":{"permitType":"往来港澳通行证","nameCn":"朱伟","nameEn":"ZHU,WEI","birthDate":"2021.01.01","sex":"男","validPeriod":"2018.06.11-2028.06.10","issueAuthority":"公安部出入境管理局","issuePlace":"江苏","permitNumber":"C88600000","mrzCode":"CSC886084772<2800800<8200000<6"},"figure":[{"type":"face","x":160,"y":271,"w":190,"h":248,"box":{"x":254,"y":394,"w":186,"h":244,"angle":0},"points":[{"x":160,"y":272},{"x":347,"y":271},{"x":348,"y":516},{"x":161,"y":517}]},{"type":"face","x":711,"y":355,"w":80,"h":103,"box":{"x":750,"y":405,"w":75,"h":99,"angle":-1},"points":[{"x":711,"y":357},{"x":787,"y":355},{"x":789,"y":454},{"x":713,"y":456}]}],"ftype":0,"height":692,"orgHeight":692,"orgWidth":1024,"prism_keyValueInfo":[{"key":"permitType","keyProb":100,"value":"往来港澳通行证","valuePos":[{"x":142,"y":39},{"x":476,"y":35},{"x":477,"y":75},{"x":142,"y":79}],"valueProb":100},{"key":"nameCn","keyProb":100,"value":"朱伟","valuePos":[{"x":272,"y":126},{"x":346,"y":124},{"x":347,"y":160},{"x":272,"y":161}],"valueProb":100},{"key":"nameEn","keyProb":100,"value":"ZHU,WEI","valuePos":[{"x":273,"y":168},{"x":403,"y":167},{"x":403,"y":194},{"x":274,"y":196}],"valueProb":100},{"key":"birthDate","keyProb":100,"value":"2021.01.01","valuePos":[{"x":421,"y":240},{"x":421,"y":269},{"x":281,"y":269},{"x":281,"y":240}],"valueProb":100},{"key":"sex","keyProb":100,"value":"男","valuePos":[{"x":502,"y":240},{"x":502,"y":270},{"x":474,"y":270},{"x":474,"y":240}],"valueProb":100},{"key":"validPeriod","keyProb":100,"value":"2018.06.11-2028.06.10","valuePos":[{"x":579,"y":301},{"x":579,"y":328},{"x":275,"y":328},{"x":275,"y":301}],"valueProb":100},{"key":"issueAuthority","keyProb":100,"value":"公安部出入境管理局","valuePos":[{"x":278,"y":361},{"x":524,"y":361},{"x":524,"y":391},{"x":278,"y":391}],"valueProb":100},{"key":"issuePlace","keyProb":100,"value":"江苏","valuePos":[{"x":619,"y":361},{"x":619,"y":391},{"x":561,"y":391},{"x":561,"y":361}],"valueProb":100},{"key":"permitNumber","keyProb":100,"value":"C88600000","valuePos":[{"x":524,"y":61},{"x":727,"y":60},{"x":728,"y":92},{"x":524,"y":94}],"valueProb":100},{"key":"mrzCode","keyProb":98,"value":"CSC886084772<2800800<8200000<6","valuePos":[{"x":714,"y":421},{"x":714,"y":449},{"x":65,"y":449},{"x":65,"y":421}],"valueProb":98}],"sliceRect":{"x0":107,"y0":135,"x1":880,"y1":134,"x2":874,"y2":616,"x3":117,"y3":624},"width":1024}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='C99EABB8-9FCB-5E5E-B4D9-AFCFA6C8B3FD'),
}

model RecognizeExitEntryPermitToHKResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeExitEntryPermitToHKResponseBody(name='body'),
}

/**
 * @summary 来往港澳台通行证识别
 *
 * @param request RecognizeExitEntryPermitToHKRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeExitEntryPermitToHKResponse
 */
async function recognizeExitEntryPermitToHKWithOptions(request: RecognizeExitEntryPermitToHKRequest, runtime: $RuntimeOptions): RecognizeExitEntryPermitToHKResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.outputFigure)) {
    query['OutputFigure'] = request.outputFigure;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeExitEntryPermitToHK',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 来往港澳台通行证识别
 *
 * @param request RecognizeExitEntryPermitToHKRequest
 * @return RecognizeExitEntryPermitToHKResponse
 */
async function recognizeExitEntryPermitToHK(request: RecognizeExitEntryPermitToHKRequest): RecognizeExitEntryPermitToHKResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeExitEntryPermitToHKWithOptions(request, runtime);
}

model RecognizeExitEntryPermitToMainlandRequest {
  outputFigure?: boolean(name='OutputFigure', example='true/false'),
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i2/O1CN01VpucoK1PtmovU859J_!!6000000001899-0-tps-928-626.jpg'),
  body?: readable(name='body'),
}

model RecognizeExitEntryPermitToMainlandResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"data":{"permitType":"港澳居民来往内地通行证","nameCn":"何郑","nameEn":"HE,CHENG","birthDate":"2000.01.01","sex":"男","validPeriod":"2014.04.10-2019.04.09","issueAuthority":"公安部出入境管理局","issuePlace":"","permitNumber":"H10387877","issueCount":"01"},"figure":[{"type":"face","x":80,"y":164,"w":192,"h":273,"box":{"x":175,"y":300,"w":187,"h":269,"angle":0},"points":[{"x":80,"y":166},{"x":268,"y":164},{"x":270,"y":433},{"x":82,"y":435}]}],"ftype":0,"height":626,"orgHeight":626,"orgWidth":928,"prism_keyValueInfo":[{"key":"permitType","keyProb":100,"value":"港澳居民来往内地通行证","valuePos":[{"x":680,"y":41},{"x":681,"y":83},{"x":177,"y":86},{"x":176,"y":44}],"valueProb":100},{"key":"nameCn","keyProb":100,"value":"何郑","valuePos":[{"x":346,"y":119},{"x":346,"y":153},{"x":269,"y":153},{"x":269,"y":119}],"valueProb":100},{"key":"nameEn","keyProb":100,"value":"HE,CHENG","valuePos":[{"x":452,"y":166},{"x":452,"y":195},{"x":270,"y":195},{"x":270,"y":166}],"valueProb":100},{"key":"birthDate","keyProb":100,"value":"2000.01.01","valuePos":[{"x":273,"y":226},{"x":414,"y":226},{"x":414,"y":254},{"x":273,"y":254}],"valueProb":100},{"key":"sex","keyProb":100,"value":"男","valuePos":[{"x":594,"y":234},{"x":594,"y":268},{"x":562,"y":268},{"x":562,"y":234}],"valueProb":100},{"key":"validPeriod","keyProb":100,"value":"2014.04.10-2019.04.09","valuePos":[{"x":700,"y":295},{"x":700,"y":323},{"x":267,"y":324},{"x":267,"y":296}],"valueProb":100},{"key":"issueAuthority","keyProb":100,"value":"公安部出入境管理局","valuePos":[{"x":264,"y":386},{"x":265,"y":353},{"x":536,"y":357},{"x":536,"y":390}],"valueProb":100},{"key":"issuePlace","keyProb":100,"value":"","valueProb":100},{"key":"permitNumber","keyProb":100,"value":"H10387877","valuePos":[{"x":489,"y":424},{"x":489,"y":457},{"x":268,"y":457},{"x":268,"y":424}],"valueProb":100},{"key":"issueCount","keyProb":100,"value":"01","valuePos":[{"x":601,"y":425},{"x":601,"y":456},{"x":555,"y":456},{"x":555,"y":425}],"valueProb":100}],"sliceRect":{"x0":46,"y0":30,"x1":887,"y1":38,"x2":892,"y2":564,"x3":39,"y3":567},"width":928}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeExitEntryPermitToMainlandResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeExitEntryPermitToMainlandResponseBody(name='body'),
}

/**
 * @summary 来往大陆(内地)通行证识别
 *
 * @param request RecognizeExitEntryPermitToMainlandRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeExitEntryPermitToMainlandResponse
 */
async function recognizeExitEntryPermitToMainlandWithOptions(request: RecognizeExitEntryPermitToMainlandRequest, runtime: $RuntimeOptions): RecognizeExitEntryPermitToMainlandResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.outputFigure)) {
    query['OutputFigure'] = request.outputFigure;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeExitEntryPermitToMainland',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 来往大陆(内地)通行证识别
 *
 * @param request RecognizeExitEntryPermitToMainlandRequest
 * @return RecognizeExitEntryPermitToMainlandResponse
 */
async function recognizeExitEntryPermitToMainland(request: RecognizeExitEntryPermitToMainlandRequest): RecognizeExitEntryPermitToMainlandResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeExitEntryPermitToMainlandWithOptions(request, runtime);
}

model RecognizeFoodManageLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeFoodManageLicenseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeFoodManageLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeFoodManageLicenseResponseBody(name='body'),
}

/**
 * @summary 食品经营许可证
 *
 * @param request RecognizeFoodManageLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeFoodManageLicenseResponse
 */
async function recognizeFoodManageLicenseWithOptions(request: RecognizeFoodManageLicenseRequest, runtime: $RuntimeOptions): RecognizeFoodManageLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeFoodManageLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 食品经营许可证
 *
 * @param request RecognizeFoodManageLicenseRequest
 * @return RecognizeFoodManageLicenseResponse
 */
async function recognizeFoodManageLicense(request: RecognizeFoodManageLicenseRequest): RecognizeFoodManageLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeFoodManageLicenseWithOptions(request, runtime);
}

model RecognizeFoodProduceLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1YaMhXKT2gK0jSZFvXXXnFXXa-1414-1000.png'),
  body?: readable(name='body'),
}

model RecognizeFoodProduceLicenseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeFoodProduceLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeFoodProduceLicenseResponseBody(name='body'),
}

/**
 * @summary 食品生产许可证
 *
 * @param request RecognizeFoodProduceLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeFoodProduceLicenseResponse
 */
async function recognizeFoodProduceLicenseWithOptions(request: RecognizeFoodProduceLicenseRequest, runtime: $RuntimeOptions): RecognizeFoodProduceLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeFoodProduceLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 食品生产许可证
 *
 * @param request RecognizeFoodProduceLicenseRequest
 * @return RecognizeFoodProduceLicenseResponse
 */
async function recognizeFoodProduceLicense(request: RecognizeFoodProduceLicenseRequest): RecognizeFoodProduceLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeFoodProduceLicenseWithOptions(request, runtime);
}

model RecognizeGeneralRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeGeneralResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeGeneralResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeGeneralResponseBody(name='body'),
}

/**
 * @summary 通用文字识别
 *
 * @param request RecognizeGeneralRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeGeneralResponse
 */
async function recognizeGeneralWithOptions(request: RecognizeGeneralRequest, runtime: $RuntimeOptions): RecognizeGeneralResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeGeneral',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 通用文字识别
 *
 * @param request RecognizeGeneralRequest
 * @return RecognizeGeneralResponse
 */
async function recognizeGeneral(request: RecognizeGeneralRequest): RecognizeGeneralResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeGeneralWithOptions(request, runtime);
}

model RecognizeGeneralStructureRequest {
  keys?: [ string ](name='Keys'),
  url?: string(name='Url', example='https://example.png'),
  body?: readable(name='body'),
}

model RecognizeGeneralStructureShrinkRequest {
  keysShrink?: string(name='Keys'),
  url?: string(name='Url', example='https://example.png'),
  body?: readable(name='body'),
}

model RecognizeGeneralStructureResponseBody = {
  code?: string(name='Code', example='LLMTimeout'),
  data?: {
    height?: int32(name='Height', example='2000'),
    subImageCount?: int32(name='SubImageCount', example='1'),
    subImages?: [ 
      {
        angle?: int32(name='Angle', example='0'),
        kvInfo?: {
          data?: any(name='Data'),
          kvCount?: int32(name='KvCount', example='6'),
        }(name='KvInfo'),
        subImageId?: int32(name='SubImageId', example='0'),
      }
    ](name='SubImages'),
    width?: int32(name='Width', example='1000'),
  }(name='Data'),
  message?: string(name='Message', example='Large language model timeout, please try again with fewer keys.'),
  requestId?: string(name='RequestId', example='2F86F9B6-CF68-1574-860C-7CC5E46F14BC'),
}

model RecognizeGeneralStructureResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeGeneralStructureResponseBody(name='body'),
}

/**
 * @summary DocMaster
 *
 * @param tmpReq RecognizeGeneralStructureRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeGeneralStructureResponse
 */
async function recognizeGeneralStructureWithOptions(tmpReq: RecognizeGeneralStructureRequest, runtime: $RuntimeOptions): RecognizeGeneralStructureResponse {
  tmpReq.validate();
  var request = new RecognizeGeneralStructureShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!$isNull(tmpReq.keys)) {
    request.keysShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.keys, 'Keys', 'simple');
  }
  var query = {};
  if (!$isNull(request.keysShrink)) {
    query['Keys'] = request.keysShrink;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = tmpReq.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeGeneralStructure',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary DocMaster
 *
 * @param request RecognizeGeneralStructureRequest
 * @return RecognizeGeneralStructureResponse
 */
async function recognizeGeneralStructure(request: RecognizeGeneralStructureRequest): RecognizeGeneralStructureResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeGeneralStructureWithOptions(request, runtime);
}

model RecognizeHKIdcardRequest {
  url?: string(name='Url', example='https://example.png'),
  body?: readable(name='body'),
}

model RecognizeHKIdcardResponseBody = {
  code?: string(name='Code'),
  data?: string(name='Data'),
  message?: string(name='Message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeHKIdcardResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeHKIdcardResponseBody(name='body'),
}

/**
 * @summary 香港身份证识别
 *
 * @param request RecognizeHKIdcardRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeHKIdcardResponse
 */
async function recognizeHKIdcardWithOptions(request: RecognizeHKIdcardRequest, runtime: $RuntimeOptions): RecognizeHKIdcardResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeHKIdcard',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 香港身份证识别
 *
 * @param request RecognizeHKIdcardRequest
 * @return RecognizeHKIdcardResponse
 */
async function recognizeHKIdcard(request: RecognizeHKIdcardRequest): RecognizeHKIdcardResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeHKIdcardWithOptions(request, runtime);
}

model RecognizeHandwritingRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  needSortPage?: boolean(name='NeedSortPage', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  paragraph?: boolean(name='Paragraph'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeHandwritingResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeHandwritingResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeHandwritingResponseBody(name='body'),
}

/**
 * @summary 通用手写体识别
 *
 * @param request RecognizeHandwritingRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeHandwritingResponse
 */
async function recognizeHandwritingWithOptions(request: RecognizeHandwritingRequest, runtime: $RuntimeOptions): RecognizeHandwritingResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.needSortPage)) {
    query['NeedSortPage'] = request.needSortPage;
  }
  if (!$isNull(request.outputCharInfo)) {
    query['OutputCharInfo'] = request.outputCharInfo;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.paragraph)) {
    query['Paragraph'] = request.paragraph;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeHandwriting',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 通用手写体识别
 *
 * @param request RecognizeHandwritingRequest
 * @return RecognizeHandwritingResponse
 */
async function recognizeHandwriting(request: RecognizeHandwritingRequest): RecognizeHandwritingResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeHandwritingWithOptions(request, runtime);
}

model RecognizeHealthCodeRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i3/O1CN01ME0L7j29f6VRZKo5e_!!6000000008094-0-tps-1237-1981.jpg'),
  body?: readable(name='body'),
}

model RecognizeHealthCodeResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"data":{"permitType":"往来港澳通行证","nameCn":"朱伟","nameEn":"ZHU,WEI","birthDate":"2021.01.01","sex":"男","validPeriod":"2018.06.11-2028.06.10","issueAuthority":"公安部出入境管理局","issuePlace":"江苏","permitNumber":"C88600000","mrzCode":"CSC886084772<2800800<8200000<6"},"figure":[{"type":"face","x":160,"y":271,"w":190,"h":248,"box":{"x":254,"y":394,"w":186,"h":244,"angle":0},"points":[{"x":160,"y":272},{"x":347,"y":271},{"x":348,"y":516},{"x":161,"y":517}]},{"type":"face","x":711,"y":355,"w":80,"h":103,"box":{"x":750,"y":405,"w":75,"h":99,"angle":-1},"points":[{"x":711,"y":357},{"x":787,"y":355},{"x":789,"y":454},{"x":713,"y":456}]}],"ftype":0,"height":692,"orgHeight":692,"orgWidth":1024,"prism_keyValueInfo":[{"key":"permitType","keyProb":100,"value":"往来港澳通行证","valuePos":[{"x":142,"y":39},{"x":476,"y":35},{"x":477,"y":75},{"x":142,"y":79}],"valueProb":100},{"key":"nameCn","keyProb":100,"value":"朱伟","valuePos":[{"x":272,"y":126},{"x":346,"y":124},{"x":347,"y":160},{"x":272,"y":161}],"valueProb":100},{"key":"nameEn","keyProb":100,"value":"ZHU,WEI","valuePos":[{"x":273,"y":168},{"x":403,"y":167},{"x":403,"y":194},{"x":274,"y":196}],"valueProb":100},{"key":"birthDate","keyProb":100,"value":"2021.01.01","valuePos":[{"x":421,"y":240},{"x":421,"y":269},{"x":281,"y":269},{"x":281,"y":240}],"valueProb":100},{"key":"sex","keyProb":100,"value":"男","valuePos":[{"x":502,"y":240},{"x":502,"y":270},{"x":474,"y":270},{"x":474,"y":240}],"valueProb":100},{"key":"validPeriod","keyProb":100,"value":"2018.06.11-2028.06.10","valuePos":[{"x":579,"y":301},{"x":579,"y":328},{"x":275,"y":328},{"x":275,"y":301}],"valueProb":100},{"key":"issueAuthority","keyProb":100,"value":"公安部出入境管理局","valuePos":[{"x":278,"y":361},{"x":524,"y":361},{"x":524,"y":391},{"x":278,"y":391}],"valueProb":100},{"key":"issuePlace","keyProb":100,"value":"江苏","valuePos":[{"x":619,"y":361},{"x":619,"y":391},{"x":561,"y":391},{"x":561,"y":361}],"valueProb":100},{"key":"permitNumber","keyProb":100,"value":"C88600000","valuePos":[{"x":524,"y":61},{"x":727,"y":60},{"x":728,"y":92},{"x":524,"y":94}],"valueProb":100},{"key":"mrzCode","keyProb":98,"value":"CSC886084772<2800800<8200000<6","valuePos":[{"x":714,"y":421},{"x":714,"y":449},{"x":65,"y":449},{"x":65,"y":421}],"valueProb":98}],"sliceRect":{"x0":107,"y0":135,"x1":880,"y1":134,"x2":874,"y2":616,"x3":117,"y3":624},"width":1024}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeHealthCodeResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeHealthCodeResponseBody(name='body'),
}

/**
 * @summary 防疫健康码识别
 *
 * @param request RecognizeHealthCodeRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeHealthCodeResponse
 */
async function recognizeHealthCodeWithOptions(request: RecognizeHealthCodeRequest, runtime: $RuntimeOptions): RecognizeHealthCodeResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeHealthCode',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 防疫健康码识别
 *
 * @param request RecognizeHealthCodeRequest
 * @return RecognizeHealthCodeResponse
 */
async function recognizeHealthCode(request: RecognizeHealthCodeRequest): RecognizeHealthCodeResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeHealthCodeWithOptions(request, runtime);
}

model RecognizeHotelConsumeRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeHotelConsumeResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeHotelConsumeResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeHotelConsumeResponseBody(name='body'),
}

/**
 * @summary 酒店流水识别
 *
 * @param request RecognizeHotelConsumeRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeHotelConsumeResponse
 */
async function recognizeHotelConsumeWithOptions(request: RecognizeHotelConsumeRequest, runtime: $RuntimeOptions): RecognizeHotelConsumeResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeHotelConsume',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 酒店流水识别
 *
 * @param request RecognizeHotelConsumeRequest
 * @return RecognizeHotelConsumeResponse
 */
async function recognizeHotelConsume(request: RecognizeHotelConsumeRequest): RecognizeHotelConsumeResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeHotelConsumeWithOptions(request, runtime);
}

model RecognizeHouseholdRequest {
  isResidentPage?: boolean(name='IsResidentPage', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB11ZxTMxD1gK0jSZFsXXbldVXa-920-606.png'),
  body?: readable(name='body'),
}

model RecognizeHouseholdResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeHouseholdResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeHouseholdResponseBody(name='body'),
}

/**
 * @summary 户口本识别
 *
 * @param request RecognizeHouseholdRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeHouseholdResponse
 */
async function recognizeHouseholdWithOptions(request: RecognizeHouseholdRequest, runtime: $RuntimeOptions): RecognizeHouseholdResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.isResidentPage)) {
    query['IsResidentPage'] = request.isResidentPage;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeHousehold',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 户口本识别
 *
 * @param request RecognizeHouseholdRequest
 * @return RecognizeHouseholdResponse
 */
async function recognizeHousehold(request: RecognizeHouseholdRequest): RecognizeHouseholdResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeHouseholdWithOptions(request, runtime);
}

model RecognizeIdcardRequest {
  llmRec?: boolean(name='Llm_rec'),
  outputFigure?: boolean(name='OutputFigure', example='false'),
  outputQualityInfo?: boolean(name='OutputQualityInfo', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1q5IeXAvoK1RjSZFNXXcxMVXa-483-307.jpg'),
  body?: readable(name='body'),
}

model RecognizeIdcardResponseBody = {
  code?: string(name='Code'),
  data?: string(name='Data'),
  message?: string(name='Message'),
  requestId?: string(name='RequestId', example='86B83935-DD36-195B-B6E4-D07BE370C8B6'),
}

model RecognizeIdcardResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeIdcardResponseBody(name='body'),
}

/**
 * @summary 身份证识别
 *
 * @param request RecognizeIdcardRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeIdcardResponse
 */
async function recognizeIdcardWithOptions(request: RecognizeIdcardRequest, runtime: $RuntimeOptions): RecognizeIdcardResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.llmRec)) {
    query['Llm_rec'] = request.llmRec;
  }
  if (!$isNull(request.outputFigure)) {
    query['OutputFigure'] = request.outputFigure;
  }
  if (!$isNull(request.outputQualityInfo)) {
    query['OutputQualityInfo'] = request.outputQualityInfo;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeIdcard',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 身份证识别
 *
 * @param request RecognizeIdcardRequest
 * @return RecognizeIdcardResponse
 */
async function recognizeIdcard(request: RecognizeIdcardRequest): RecognizeIdcardResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeIdcardWithOptions(request, runtime);
}

model RecognizeInternationalBusinessLicenseRequest {
  country?: string(name='Country', description='This parameter is required.', example='India'),
  url?: string(name='Url', example='https://www.example.com'),
  body?: readable(name='body'),
}

model RecognizeInternationalBusinessLicenseResponseBody = {
  code?: string(name='Code', example='unmatchedImageType'),
  data?: string(name='Data', example='{"algo_version": "b16f86189b72c2d726865272c98e8e58156a41c7;b16f86189b72c2d726865272c98e8e58156a41c7", "data": {"certificateType": "간이과세자", "issuanceNo": "", "processingTime": "", "companyNameEn": "", "companyName": "", "registrationNo": "135-31-78773", "nameOfRepresentativeEn": "", "nameOfRepresentative": "테라", "residentRegistrationNo": "", "businessAddressEn": "", "businessAddress": "경기도 수원시 영통구 영통로 498, 143동 1806흐(영통동, 황골마을 주공아파트)", "businessCommencementDate": "1972-01-10", "businessRegistrationDate": "", "businessTypeEn": "", "businessType": "", "businessItemEn": "", "businessItem": "스매업 전자상거래업(의류)", "jointCompanyName": "", "jointCompanyRegistrationNo": "", "issueDate": "2015-10-28", "issuer": "동수원세무서장"}, "ftype": 0, "height": 2988, "orgHeight": 2988, "orgWidth": 5312, "prism_keyValueInfo": [{"key": "certificateType", "keyProb": 100, "value": "간이과세자", "valuePos": [{"x": 621, "y": 1768}, {"x": 615, "y": 1221}, {"x": 720, "y": 1220}, {"x": 726, "y": 1767}], "valueProb": 100}, {"key": "issuanceNo", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "processingTime", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "companyNameEn", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "companyName", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "registrationNo", "keyProb": 100, "value": "135-31-78773", "valuePos": [{"x": 773, "y": 1517}, {"x": 763, "y": 881}, {"x": 861, "y": 880}, {"x": 870, "y": 1515}], "valueProb": 100}, {"key": "nameOfRepresentativeEn", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "nameOfRepresentative", "keyProb": 90, "value": "테라", "valuePos": [{"x": 946, "y": 2201}, {"x": 946, "y": 2047}, {"x": 1022, "y": 2047}, {"x": 1022, "y": 2201}], "valueProb": 90}, {"key": "residentRegistrationNo", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "businessAddressEn", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "businessAddress", "keyProb": 96, "value": "경기도 수원시 영통구 영통로 498, 143동 1806흐(영통동, 황골마을 주공아파트)", "valuePos": [{"x": 1346, "y": 2200}, {"x": 1321, "y": 736}, {"x": 1499, "y": 733}, {"x": 1523, "y": 2197}], "valueProb": 96}, {"key": "businessCommencementDate", "keyProb": 100, "value": "1972-01-10", "valuePos": [{"x": 1055, "y": 788}, {"x": 1046, "y": 62}, {"x": 1127, "y": 62}, {"x": 1135, "y": 787}], "valueProb": 100}, {"key": "businessRegistrationDate", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "businessTypeEn", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "businessType", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "businessItemEn", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "businessItem", "keyProb": 100, "value": "스매업 전자상거래업(의류)", "valuePos": [{"x": 1590, "y": 1982}, {"x": 1561, "y": 293}, {"x": 1659, "y": 291}, {"x": 1688, "y": 1980}], "valueProb": 100}, {"key": "jointCompanyName", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "jointCompanyRegistrationNo", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "issueDate", "keyProb": 100, "value": "2015-10-28", "valuePos": [{"x": 3755, "y": 1938}, {"x": 3749, "y": 1057}, {"x": 3842, "y": 1056}, {"x": 3848, "y": 1937}], "valueProb": 100}, {"key": "issuer", "keyProb": 100, "value": "동수원세무서장", "valuePos": [{"x": 3978, "y": 1997}, {"x": 3970, "y": 982}, {"x": 4099, "y": 980}, {"x": 4107, "y": 1996}], "valueProb": 100}], "sliceRect": {"x0": 8, "y0": 0, "x1": 4695, "y1": 0, "x2": 4737, "y2": 2976, "x3": 12, "y3": 2988}, "width": 5312}'),
  message?: string(name='Message', example='The type of image didn\\\\"t match the api.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeInternationalBusinessLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeInternationalBusinessLicenseResponseBody(name='body'),
}

/**
 * @summary 国际营业执照识别
 *
 * @param request RecognizeInternationalBusinessLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeInternationalBusinessLicenseResponse
 */
async function recognizeInternationalBusinessLicenseWithOptions(request: RecognizeInternationalBusinessLicenseRequest, runtime: $RuntimeOptions): RecognizeInternationalBusinessLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.country)) {
    query['Country'] = request.country;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeInternationalBusinessLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 国际营业执照识别
 *
 * @param request RecognizeInternationalBusinessLicenseRequest
 * @return RecognizeInternationalBusinessLicenseResponse
 */
async function recognizeInternationalBusinessLicense(request: RecognizeInternationalBusinessLicenseRequest): RecognizeInternationalBusinessLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeInternationalBusinessLicenseWithOptions(request, runtime);
}

model RecognizeInternationalIdcardRequest {
  country?: string(name='Country', description='This parameter is required.', example='Vietnam'),
  url?: string(name='Url', example='http://example.jpg'),
  body?: readable(name='body'),
}

model RecognizeInternationalIdcardResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeInternationalIdcardResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeInternationalIdcardResponseBody(name='body'),
}

/**
 * @summary 国际身份证识别
 *
 * @param request RecognizeInternationalIdcardRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeInternationalIdcardResponse
 */
async function recognizeInternationalIdcardWithOptions(request: RecognizeInternationalIdcardRequest, runtime: $RuntimeOptions): RecognizeInternationalIdcardResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.country)) {
    query['Country'] = request.country;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeInternationalIdcard',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 国际身份证识别
 *
 * @param request RecognizeInternationalIdcardRequest
 * @return RecognizeInternationalIdcardResponse
 */
async function recognizeInternationalIdcard(request: RecognizeInternationalIdcardRequest): RecognizeInternationalIdcardResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeInternationalIdcardWithOptions(request, runtime);
}

model RecognizeInvoiceRequest {
  pageNo?: int32(name='PageNo'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1qIIfXAPoK1RjSZKbXXX1IXXa-808-523.jpg'),
  body?: readable(name='body'),
}

model RecognizeInvoiceResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeInvoiceResponseBody(name='body'),
}

/**
 * @summary 增值税发票识别
 *
 * @param request RecognizeInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeInvoiceResponse
 */
async function recognizeInvoiceWithOptions(request: RecognizeInvoiceRequest, runtime: $RuntimeOptions): RecognizeInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.pageNo)) {
    query['PageNo'] = request.pageNo;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 增值税发票识别
 *
 * @param request RecognizeInvoiceRequest
 * @return RecognizeInvoiceResponse
 */
async function recognizeInvoice(request: RecognizeInvoiceRequest): RecognizeInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeInvoiceWithOptions(request, runtime);
}

model RecognizeJanpaneseRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeJanpaneseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeJanpaneseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeJanpaneseResponseBody(name='body'),
}

/**
 * @summary 日语识别
 *
 * @param request RecognizeJanpaneseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeJanpaneseResponse
 */
async function recognizeJanpaneseWithOptions(request: RecognizeJanpaneseRequest, runtime: $RuntimeOptions): RecognizeJanpaneseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.outputCharInfo)) {
    query['OutputCharInfo'] = request.outputCharInfo;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeJanpanese',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 日语识别
 *
 * @param request RecognizeJanpaneseRequest
 * @return RecognizeJanpaneseResponse
 */
async function recognizeJanpanese(request: RecognizeJanpaneseRequest): RecognizeJanpaneseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeJanpaneseWithOptions(request, runtime);
}

model RecognizeKoreanRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeKoreanResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data', example='{"content":"위 기자재는 [전파법] 제58조의2 제3항에 따라 등록되었음을 증명합니다.  Itis verified thatforegoing equipment has bee en registered underthe Clause 3, Article 58-2 of Radio Waves Act.  y0 13년(Year)_08월(Month) 16일(Date) 국립전 파연구 국립전파연7 구원장 인 Dlrector General ofNatlonal Radio Research Agency    적합등록 방송통신기자재는 반드시\\\\"적합성평가표: .시\\\\"를 부착하여 유통하여야 합니다.  위반시 과태료 처분 및등록이 취소될 수 있습니다.  ","height":499,"orgHeight":499,"orgWidth":1153,"prism_version":"1.0.9","prism_wnum":19,"prism_wordsInfo":[{"angle":-90,"direction":0,"height":587,"pos":[{"x":61,"y":18},{"x":647,"y":16},{"x":647,"y":43},{"x":61,"y":45}],"prob":98,"width":27,"word":"위 기자재는 [전파법] 제58조의2 제3항에 따라","x":341,"y":-263}],"width":1153}'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeKoreanResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeKoreanResponseBody(name='body'),
}

/**
 * @summary 韩语识别
 *
 * @param request RecognizeKoreanRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeKoreanResponse
 */
async function recognizeKoreanWithOptions(request: RecognizeKoreanRequest, runtime: $RuntimeOptions): RecognizeKoreanResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.outputCharInfo)) {
    query['OutputCharInfo'] = request.outputCharInfo;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeKorean',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 韩语识别
 *
 * @param request RecognizeKoreanRequest
 * @return RecognizeKoreanResponse
 */
async function recognizeKorean(request: RecognizeKoreanRequest): RecognizeKoreanResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeKoreanWithOptions(request, runtime);
}

model RecognizeLatinRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeLatinResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data', example='{"angle":1,"content":"Đậm Phong Cách Khác Biêt  Trên tay chế tác nguyên khối dẫn đầu xu hướng với thiết kế thần máy liền mạch, độ mông ấn tượng 8.5mm cùng   kiểu dáng mặt kinh bóng mượt, sang trọng từ Galaxy M30. Vừa vặn hoền hẩo trong lông bần tay, tho thích thể hiện   phong cách thời thượng với hai phiên bản màu Đen hoặc Xanh cắ tính.  xanh Ngân Hà   Đen Ngả Khói  OC S   ","height":821,"orgHeight":803,"orgWidth":1075,"prism_version":"1.0.9","prism_wnum":9,"prism_wordsInfo":[{"angle":0,"direction":0,"height":37,"pos":[{"x":293,"y":37},{"x":776,"y":29},{"x":777,"y":66},{"x":294,"y":74}],"prob":99,"width":484,"word":"Đậm Phong Cách","x":292,"y":24}],"width":1088}'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeLatinResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeLatinResponseBody(name='body'),
}

/**
 * @summary 拉丁语识别
 *
 * @param request RecognizeLatinRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeLatinResponse
 */
async function recognizeLatinWithOptions(request: RecognizeLatinRequest, runtime: $RuntimeOptions): RecognizeLatinResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.outputCharInfo)) {
    query['OutputCharInfo'] = request.outputCharInfo;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeLatin',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 拉丁语识别
 *
 * @param request RecognizeLatinRequest
 * @return RecognizeLatinResponse
 */
async function recognizeLatin(request: RecognizeLatinRequest): RecognizeLatinResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeLatinWithOptions(request, runtime);
}

model RecognizeMedicalDeviceManageLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1ZrF.MuL2gK0jSZFmXXc7iXXa-1417-995.png'),
  body?: readable(name='body'),
}

model RecognizeMedicalDeviceManageLicenseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeMedicalDeviceManageLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeMedicalDeviceManageLicenseResponseBody(name='body'),
}

/**
 * @summary 医疗器械经营许可证
 *
 * @param request RecognizeMedicalDeviceManageLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeMedicalDeviceManageLicenseResponse
 */
async function recognizeMedicalDeviceManageLicenseWithOptions(request: RecognizeMedicalDeviceManageLicenseRequest, runtime: $RuntimeOptions): RecognizeMedicalDeviceManageLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeMedicalDeviceManageLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 医疗器械经营许可证
 *
 * @param request RecognizeMedicalDeviceManageLicenseRequest
 * @return RecognizeMedicalDeviceManageLicenseResponse
 */
async function recognizeMedicalDeviceManageLicense(request: RecognizeMedicalDeviceManageLicenseRequest): RecognizeMedicalDeviceManageLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeMedicalDeviceManageLicenseWithOptions(request, runtime);
}

model RecognizeMedicalDeviceProduceLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB13MJ.MuT2gK0jSZFvXXXnFXXa-1417-994.png'),
  body?: readable(name='body'),
}

model RecognizeMedicalDeviceProduceLicenseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeMedicalDeviceProduceLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeMedicalDeviceProduceLicenseResponseBody(name='body'),
}

/**
 * @summary 医疗器械生产许可证
 *
 * @param request RecognizeMedicalDeviceProduceLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeMedicalDeviceProduceLicenseResponse
 */
async function recognizeMedicalDeviceProduceLicenseWithOptions(request: RecognizeMedicalDeviceProduceLicenseRequest, runtime: $RuntimeOptions): RecognizeMedicalDeviceProduceLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeMedicalDeviceProduceLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 医疗器械生产许可证
 *
 * @param request RecognizeMedicalDeviceProduceLicenseRequest
 * @return RecognizeMedicalDeviceProduceLicenseResponse
 */
async function recognizeMedicalDeviceProduceLicense(request: RecognizeMedicalDeviceProduceLicenseRequest): RecognizeMedicalDeviceProduceLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeMedicalDeviceProduceLicenseWithOptions(request, runtime);
}

model RecognizeMixedInvoicesRequest {
  mergePdfPages?: boolean(name='MergePdfPages'),
  pageNo?: int32(name='PageNo'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1.bnGbRWD3KVjSZFsXXcqkpXa-1654-2341.jpg'),
  body?: readable(name='body'),
}

model RecognizeMixedInvoicesResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeMixedInvoicesResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeMixedInvoicesResponseBody(name='body'),
}

/**
 * @summary 混贴发票识别
 *
 * @param request RecognizeMixedInvoicesRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeMixedInvoicesResponse
 */
async function recognizeMixedInvoicesWithOptions(request: RecognizeMixedInvoicesRequest, runtime: $RuntimeOptions): RecognizeMixedInvoicesResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.mergePdfPages)) {
    query['MergePdfPages'] = request.mergePdfPages;
  }
  if (!$isNull(request.pageNo)) {
    query['PageNo'] = request.pageNo;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeMixedInvoices',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 混贴发票识别
 *
 * @param request RecognizeMixedInvoicesRequest
 * @return RecognizeMixedInvoicesResponse
 */
async function recognizeMixedInvoices(request: RecognizeMixedInvoicesRequest): RecognizeMixedInvoicesResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeMixedInvoicesWithOptions(request, runtime);
}

model RecognizeMultiLanguageRequest {
  languages?: [ string ](name='Languages', description='This parameter is required.'),
  needRotate?: boolean(name='NeedRotate', example='false'),
  needSortPage?: boolean(name='NeedSortPage', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeMultiLanguageShrinkRequest {
  languagesShrink?: string(name='Languages', description='This parameter is required.'),
  needRotate?: boolean(name='NeedRotate', example='false'),
  needSortPage?: boolean(name='NeedSortPage', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeMultiLanguageResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data', example='{"content":"PACKING  Shipper/Export   Invoice No & Date  STM TECHNOLOGY INC. 20140730- ST44 ","height":1753,"orgHeight":1753,"orgWidth":1240,"prism_version":"1.0.9","prism_wnum":71,"prism_wordsInfo":[{"angle":0,"direction":0,"height":33,"pos":[{"x":348,"y":137},{"x":531,"y":135},{"x":532,"y":168},{"x":348,"y":170}],"prob":99,"recClassify":1,"width":184,"word":"PACKING","x":348,"y":135}],"width":1240}'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeMultiLanguageResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeMultiLanguageResponseBody(name='body'),
}

/**
 * @summary 通用多语言识别
 *
 * @param tmpReq RecognizeMultiLanguageRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeMultiLanguageResponse
 */
async function recognizeMultiLanguageWithOptions(tmpReq: RecognizeMultiLanguageRequest, runtime: $RuntimeOptions): RecognizeMultiLanguageResponse {
  tmpReq.validate();
  var request = new RecognizeMultiLanguageShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!$isNull(tmpReq.languages)) {
    request.languagesShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.languages, 'Languages', 'simple');
  }
  var query = {};
  if (!$isNull(request.languagesShrink)) {
    query['Languages'] = request.languagesShrink;
  }
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.needSortPage)) {
    query['NeedSortPage'] = request.needSortPage;
  }
  if (!$isNull(request.outputCharInfo)) {
    query['OutputCharInfo'] = request.outputCharInfo;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = tmpReq.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeMultiLanguage',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 通用多语言识别
 *
 * @param request RecognizeMultiLanguageRequest
 * @return RecognizeMultiLanguageResponse
 */
async function recognizeMultiLanguage(request: RecognizeMultiLanguageRequest): RecognizeMultiLanguageResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeMultiLanguageWithOptions(request, runtime);
}

model RecognizeNonTaxInvoiceRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeNonTaxInvoiceResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeNonTaxInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeNonTaxInvoiceResponseBody(name='body'),
}

/**
 * @summary 非税收入票据识别
 *
 * @param request RecognizeNonTaxInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeNonTaxInvoiceResponse
 */
async function recognizeNonTaxInvoiceWithOptions(request: RecognizeNonTaxInvoiceRequest, runtime: $RuntimeOptions): RecognizeNonTaxInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeNonTaxInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 非税收入票据识别
 *
 * @param request RecognizeNonTaxInvoiceRequest
 * @return RecognizeNonTaxInvoiceResponse
 */
async function recognizeNonTaxInvoice(request: RecognizeNonTaxInvoiceRequest): RecognizeNonTaxInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeNonTaxInvoiceWithOptions(request, runtime);
}

model RecognizePassportRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1uHglUgHqK1RjSZFEXXcGMXXa-800-502.png'),
  body?: readable(name='body'),
}

model RecognizePassportResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizePassportResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizePassportResponseBody(name='body'),
}

/**
 * @summary 护照识别
 *
 * @param request RecognizePassportRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizePassportResponse
 */
async function recognizePassportWithOptions(request: RecognizePassportRequest, runtime: $RuntimeOptions): RecognizePassportResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizePassport',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 护照识别
 *
 * @param request RecognizePassportRequest
 * @return RecognizePassportResponse
 */
async function recognizePassport(request: RecognizePassportRequest): RecognizePassportResponse {
  var runtime = new $RuntimeOptions{};
  return recognizePassportWithOptions(request, runtime);
}

model RecognizePaymentRecordRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizePaymentRecordResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizePaymentRecordResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizePaymentRecordResponseBody(name='body'),
}

/**
 * @summary 支付详情页识别
 *
 * @param request RecognizePaymentRecordRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizePaymentRecordResponse
 */
async function recognizePaymentRecordWithOptions(request: RecognizePaymentRecordRequest, runtime: $RuntimeOptions): RecognizePaymentRecordResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizePaymentRecord',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 支付详情页识别
 *
 * @param request RecognizePaymentRecordRequest
 * @return RecognizePaymentRecordResponse
 */
async function recognizePaymentRecord(request: RecognizePaymentRecordRequest): RecognizePaymentRecordResponse {
  var runtime = new $RuntimeOptions{};
  return recognizePaymentRecordWithOptions(request, runtime);
}

model RecognizePurchaseRecordRequest {
  outputMultiOrders?: boolean(name='OutputMultiOrders', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizePurchaseRecordResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizePurchaseRecordResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizePurchaseRecordResponseBody(name='body'),
}

/**
 * @summary 电商订单页识别
 *
 * @param request RecognizePurchaseRecordRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizePurchaseRecordResponse
 */
async function recognizePurchaseRecordWithOptions(request: RecognizePurchaseRecordRequest, runtime: $RuntimeOptions): RecognizePurchaseRecordResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.outputMultiOrders)) {
    query['OutputMultiOrders'] = request.outputMultiOrders;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizePurchaseRecord',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 电商订单页识别
 *
 * @param request RecognizePurchaseRecordRequest
 * @return RecognizePurchaseRecordResponse
 */
async function recognizePurchaseRecord(request: RecognizePurchaseRecordRequest): RecognizePurchaseRecordResponse {
  var runtime = new $RuntimeOptions{};
  return recognizePurchaseRecordWithOptions(request, runtime);
}

model RecognizeQuotaInvoiceRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1SwAeXHr1gK0jSZR0XXbP8XXa-870-604.jpg'),
  body?: readable(name='body'),
}

model RecognizeQuotaInvoiceResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeQuotaInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeQuotaInvoiceResponseBody(name='body'),
}

/**
 * @summary 定额发票
 *
 * @param request RecognizeQuotaInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeQuotaInvoiceResponse
 */
async function recognizeQuotaInvoiceWithOptions(request: RecognizeQuotaInvoiceRequest, runtime: $RuntimeOptions): RecognizeQuotaInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeQuotaInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 定额发票
 *
 * @param request RecognizeQuotaInvoiceRequest
 * @return RecognizeQuotaInvoiceResponse
 */
async function recognizeQuotaInvoice(request: RecognizeQuotaInvoiceRequest): RecognizeQuotaInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeQuotaInvoiceWithOptions(request, runtime);
}

model RecognizeRideHailingItineraryRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i1/O1CN01ePLJiZ1n8CTylKsn3_!!6000000005044-2-tps-194-260.png'),
  body?: readable(name='body'),
}

model RecognizeRideHailingItineraryResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"data":{"serviceProvider":"滴滴出行","applicationDate":"","startTime":"","endTime":"","phoneNumber":"","totalAmount":"","rideDetails":[{"Number":"","carType":"","pickUpTime":"","city":"","startPlace":"","endPlace":"","mileage":"","amount":"","remarks":""}]},"ftype":0,"height":260,"orgHeight":260,"orgWidth":194,"prism_keyValueInfo":[{"key":"serviceProvider","keyProb":99,"value":"滴滴出行","valuePos":[{"x":120,"y":11},{"x":120,"y":21},{"x":57,"y":20},{"x":57,"y":10}],"valueProb":99},{"key":"applicationDate","keyProb":100,"value":"","valueProb":100},{"key":"startTime","keyProb":91,"value":"","valuePos":[{"x":94,"y":46},{"x":94,"y":50},{"x":75,"y":50},{"x":75,"y":46}],"valueProb":91},{"key":"endTime","keyProb":65,"value":"","valuePos":[{"x":112,"y":46},{"x":112,"y":50},{"x":95,"y":50},{"x":95,"y":46}],"valueProb":65},{"key":"phoneNumber","keyProb":100,"value":"","valueProb":100},{"key":"totalAmount","keyProb":100,"value":"","valueProb":100},{"key":"rideDetails","keyProb":100,"value":"[{\\"Number\\":\\"\\",\\"carType\\":\\"\\",\\"pickUpTime\\":\\"\\",\\"city\\":\\"\\",\\"startPlace\\":\\"\\",\\"endPlace\\":\\"\\",\\"mileage\\":\\"\\",\\"amount\\":\\"\\",\\"remarks\\":\\"\\"}]","valueProb":100}],"sliceRect":{"x0":6,"y0":72,"x1":186,"y1":72,"x2":186,"y2":156,"x3":6,"y3":156},"width":194}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeRideHailingItineraryResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeRideHailingItineraryResponseBody(name='body'),
}

/**
 * @summary 网约车行程单识别
 *
 * @param request RecognizeRideHailingItineraryRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeRideHailingItineraryResponse
 */
async function recognizeRideHailingItineraryWithOptions(request: RecognizeRideHailingItineraryRequest, runtime: $RuntimeOptions): RecognizeRideHailingItineraryResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeRideHailingItinerary',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 网约车行程单识别
 *
 * @param request RecognizeRideHailingItineraryRequest
 * @return RecognizeRideHailingItineraryResponse
 */
async function recognizeRideHailingItinerary(request: RecognizeRideHailingItineraryRequest): RecognizeRideHailingItineraryResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeRideHailingItineraryWithOptions(request, runtime);
}

model RecognizeRollTicketRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Y2ryJKT2gK0jSZFvXXXnFXXa-438-934.png'),
  body?: readable(name='body'),
}

model RecognizeRollTicketResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeRollTicketResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeRollTicketResponseBody(name='body'),
}

/**
 * @summary 增值税发票卷票
 *
 * @param request RecognizeRollTicketRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeRollTicketResponse
 */
async function recognizeRollTicketWithOptions(request: RecognizeRollTicketRequest, runtime: $RuntimeOptions): RecognizeRollTicketResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeRollTicket',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 增值税发票卷票
 *
 * @param request RecognizeRollTicketRequest
 * @return RecognizeRollTicketResponse
 */
async function recognizeRollTicket(request: RecognizeRollTicketRequest): RecognizeRollTicketResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeRollTicketWithOptions(request, runtime);
}

model RecognizeRussianRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeRussianResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data', example='{"content":"Тэбако (коробочка для косметики) с рисунком в виде колес повозки","height":199,"orgHeight":199,"orgWidth":766,"prism_version":"1.0.9","prism_wnum":6,"prism_wordsInfo":[{"angle":-89,"direction":0,"height":722,"pos":[{"x":6,"y":23},{"x":728,"y":26},{"x":727,"y":43},{"x":5,"y":41}],"prob":99,"width":17,"word":"Тэбако (коробочка для косметики) с рисунком в виде колес повозки， покрытая","x":358,"y":-327}],"width":766}'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeRussianResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeRussianResponseBody(name='body'),
}

/**
 * @summary 俄语识别
 *
 * @param request RecognizeRussianRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeRussianResponse
 */
async function recognizeRussianWithOptions(request: RecognizeRussianRequest, runtime: $RuntimeOptions): RecognizeRussianResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.outputCharInfo)) {
    query['OutputCharInfo'] = request.outputCharInfo;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeRussian',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 俄语识别
 *
 * @param request RecognizeRussianRequest
 * @return RecognizeRussianResponse
 */
async function recognizeRussian(request: RecognizeRussianRequest): RecognizeRussianResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeRussianWithOptions(request, runtime);
}

model RecognizeShoppingReceiptRequest {
  url?: string(name='Url', example='http://duguang-database-public.oss-cn-hangzhou.aliyuncs.com/multi_receipt_shopping_receipt/shop_receipt__ticket_2020-05-14-11-59-30.540668_01_List.jpg'),
  body?: readable(name='body'),
}

model RecognizeShoppingReceiptResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"data": {"shopName": "世纪联华椒江市府大道店", "receiptDate": "2020-04-23", "receiptTime": "20:26:00", "contactNumber": "88068111", "shopAddress": "", "totalAmount": "566.67"}, "ftype": 0, "height": 1047, "orgHeight": 1055, "orgWidth": 690, "prism_keyValueInfo": [{"key": "shopName", "keyProb": 98, "value": "世纪联华椒江市府大道店", "valuePos": [{"x": 51, "y": 239}, {"x": 53, "y": 208}, {"x": 438, "y": 231}, {"x": 436, "y": 262}], "valueProb": 98}, {"key": "receiptDate", "keyProb": 100, "value": "2020-04-23", "valuePos": [{"x": 292, "y": 677}, {"x": 293, "y": 649}, {"x": 428, "y": 651}, {"x": 428, "y": 680}], "valueProb": 100}, {"key": "receiptTime", "keyProb": 100, "value": "20:26:00", "valuePos": [{"x": 435, "y": 681}, {"x": 435, "y": 652}, {"x": 548, "y": 656}, {"x": 547, "y": 684}], "valueProb": 100}, {"key": "contactNumber", "keyProb": 100, "value": "88068111", "valuePos": [{"x": 52, "y": 271}, {"x": 52, "y": 242}, {"x": 160, "y": 246}, {"x": 159, "y": 274}], "valueProb": 100}, {"key": "shopAddress", "keyProb": 100, "value": "", "valueProb": 100}, {"key": "totalAmount", "keyProb": 100, "value": "566.67", "valuePos": [{"x": 206, "y": 522}, {"x": 206, "y": 493}, {"x": 313, "y": 495}, {"x": 313, "y": 524}], "valueProb": 100}], "sliceRect": {"x0": 17, "y0": 8, "x1": 690, "y1": 42, "x2": 690, "y2": 1054, "x3": 6, "y3": 1053}, "width": 684}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeShoppingReceiptResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeShoppingReceiptResponseBody(name='body'),
}

/**
 * @summary 购物小票识别
 *
 * @param request RecognizeShoppingReceiptRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeShoppingReceiptResponse
 */
async function recognizeShoppingReceiptWithOptions(request: RecognizeShoppingReceiptRequest, runtime: $RuntimeOptions): RecognizeShoppingReceiptResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeShoppingReceipt',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 购物小票识别
 *
 * @param request RecognizeShoppingReceiptRequest
 * @return RecognizeShoppingReceiptResponse
 */
async function recognizeShoppingReceipt(request: RecognizeShoppingReceiptRequest): RecognizeShoppingReceiptResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeShoppingReceiptWithOptions(request, runtime);
}

model RecognizeSocialSecurityCardRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i4/O1CN01zpM9bJ1Pa5pCwJat7_!!6000000001856-0-tps-282-179.jpg'),
  body?: readable(name='body'),
}

model RecognizeSocialSecurityCardResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"angle":0,"data":{"issueDate":"20168月4日","certificateNumber":"2014100285","taxAuthorityName":"格","formType":"第一联","taxNumbe":"","name":"","totalAmountInWords":"肆佰陆拾陆元叁角玖分","totalAmount":"466.39","drawer":"","remarks":"(20141)鄂国证00285001正常申报一般申报滞纳金自行申报松滋市街河市镇现:主管税务所(科、分局):松滋市国家税务局办税服票价格:4615.38、车辆厂牌:铃木牌/SUZUKIHJ125K-车辆型号:铃木牌/SUZUKIHJ125K-2A、车辆识别代号:LC6PCJ2Y5F1014537","taxClearanceDetails":[{"voucherNumber":"320160804000005082","taxType":"车辆购置税","itemName":"车辆购置税","taxPeriod":"2016-08-04至2016-08-04","date":"2016-08-04461.54","amount":""},{"voucherNumber":"320160804000005082","taxType":"车辆购置税","itemName":"滞纳金","taxPeriod":"2016-08-04至2016-08-04","date":"2016-08-044.85","amount":""}]},"ftype":0,"height":712,"orgHeight":712,"orgWidth":1080,"prism_keyValueInfo":[{"key":"issueDate","keyProb":100,"value":"20168月4日","valuePos":[{"x":458,"y":129},{"x":458,"y":110},{"x":639,"y":113},{"x":638,"y":131}],"valueProb":100},{"key":"certificateNumber","keyProb":99,"value":"2014100285","valuePos":[{"x":810,"y":87},{"x":997,"y":83},{"x":997,"y":103},{"x":810,"y":106}],"valueProb":99},{"key":"taxAuthorityName","keyProb":87,"value":"格","valuePos":[{"x":840,"y":103},{"x":840,"y":128},{"x":825,"y":128},{"x":825,"y":103}],"valueProb":87},{"key":"formType","keyProb":100,"value":"第一联","valuePos":[{"x":1036,"y":247},{"x":1051,"y":247},{"x":1051,"y":289},{"x":1036,"y":289}],"valueProb":100},{"key":"taxNumbe","keyProb":100,"value":"","valueProb":100},{"key":"name","keyProb":100,"value":"","valueProb":100},{"key":"totalAmountInWords","keyProb":100,"value":"肆佰陆拾陆元叁角玖分","valuePos":[{"x":239,"y":498},{"x":395,"y":496},{"x":395,"y":514},{"x":239,"y":515}],"valueProb":100},{"key":"totalAmount","keyProb":100,"value":"466.39","valuePos":[{"x":892,"y":494},{"x":957,"y":493},{"x":957,"y":508},{"x":893,"y":510}],"valueProb":100},{"key":"drawer","keyProb":100,"value":"","valueProb":100},{"key":"remarks","keyProb":100,"value":"(20141)鄂国证00285001正常申报一般申报滞纳金自行申报松滋市街河市镇现:主管税务所(科、分局):松滋市国家税务局办税服票价格:4615.38、车辆厂牌:铃木牌/SUZUKIHJ125K-车辆型号:铃木牌/SUZUKIHJ125K-2A、车辆识别代号:LC6PCJ2Y5F1014537","valuePos":[{"x":966,"y":538},{"x":966,"y":663},{"x":610,"y":663},{"x":610,"y":538}],"valueProb":100},{"key":"taxClearanceDetails","keyProb":100,"value":"[{\\"voucherNumber\\":\\"320160804000005082\\",\\"taxType\\":\\"车辆购置税\\",\\"itemName\\":\\"车辆购置税\\",\\"taxPeriod\\":\\"2016-08-04至2016-08-04\\",\\"date\\":\\"2016-08-04461.54\\",\\"amount\\":\\"\\"},{\\"voucherNumber\\":\\"320160804000005082\\",\\"taxType\\":\\"车辆购置税\\",\\"itemName\\":\\"滞纳金\\",\\"taxPeriod\\":\\"2016-08-04至2016-08-04\\",\\"date\\":\\"2016-08-044.85\\",\\"amount\\":\\"\\"}]","valueProb":100}],"sliceRect":{"x0":0,"y0":0,"x1":1077,"y1":0,"x2":1078,"y2":709,"x3":0,"y3":704},"width":1080}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeSocialSecurityCardResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeSocialSecurityCardResponseBody(name='body'),
}

/**
 * @summary 社会保障卡识别
 *
 * @param request RecognizeSocialSecurityCardRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeSocialSecurityCardResponse
 */
async function recognizeSocialSecurityCardWithOptions(request: RecognizeSocialSecurityCardRequest, runtime: $RuntimeOptions): RecognizeSocialSecurityCardResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeSocialSecurityCard',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 社会保障卡识别
 *
 * @param request RecognizeSocialSecurityCardRequest
 * @return RecognizeSocialSecurityCardResponse
 */
async function recognizeSocialSecurityCard(request: RecognizeSocialSecurityCardRequest): RecognizeSocialSecurityCardResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeSocialSecurityCardWithOptions(request, runtime);
}

model RecognizeSocialSecurityCardVersionIIRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i4/O1CN01zpM9bJ1Pa5pCwJat7_!!6000000001856-0-tps-282-179.jpg'),
  body?: readable(name='body'),
}

model RecognizeSocialSecurityCardVersionIIResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"angle":0,"data":{"issueDate":"20168月4日","certificateNumber":"2014100285","taxAuthorityName":"格","formType":"第一联","taxNumbe":"","name":"","totalAmountInWords":"肆佰陆拾陆元叁角玖分","totalAmount":"466.39","drawer":"","remarks":"(20141)鄂国证00285001正常申报一般申报滞纳金自行申报松滋市街河市镇现:主管税务所(科、分局):松滋市国家税务局办税服票价格:4615.38、车辆厂牌:铃木牌/SUZUKIHJ125K-车辆型号:铃木牌/SUZUKIHJ125K-2A、车辆识别代号:LC6PCJ2Y5F1014537","taxClearanceDetails":[{"voucherNumber":"320160804000005082","taxType":"车辆购置税","itemName":"车辆购置税","taxPeriod":"2016-08-04至2016-08-04","date":"2016-08-04461.54","amount":""},{"voucherNumber":"320160804000005082","taxType":"车辆购置税","itemName":"滞纳金","taxPeriod":"2016-08-04至2016-08-04","date":"2016-08-044.85","amount":""}]},"ftype":0,"height":712,"orgHeight":712,"orgWidth":1080,"prism_keyValueInfo":[{"key":"issueDate","keyProb":100,"value":"20168月4日","valuePos":[{"x":458,"y":129},{"x":458,"y":110},{"x":639,"y":113},{"x":638,"y":131}],"valueProb":100},{"key":"certificateNumber","keyProb":99,"value":"2014100285","valuePos":[{"x":810,"y":87},{"x":997,"y":83},{"x":997,"y":103},{"x":810,"y":106}],"valueProb":99},{"key":"taxAuthorityName","keyProb":87,"value":"格","valuePos":[{"x":840,"y":103},{"x":840,"y":128},{"x":825,"y":128},{"x":825,"y":103}],"valueProb":87},{"key":"formType","keyProb":100,"value":"第一联","valuePos":[{"x":1036,"y":247},{"x":1051,"y":247},{"x":1051,"y":289},{"x":1036,"y":289}],"valueProb":100},{"key":"taxNumbe","keyProb":100,"value":"","valueProb":100},{"key":"name","keyProb":100,"value":"","valueProb":100},{"key":"totalAmountInWords","keyProb":100,"value":"肆佰陆拾陆元叁角玖分","valuePos":[{"x":239,"y":498},{"x":395,"y":496},{"x":395,"y":514},{"x":239,"y":515}],"valueProb":100},{"key":"totalAmount","keyProb":100,"value":"466.39","valuePos":[{"x":892,"y":494},{"x":957,"y":493},{"x":957,"y":508},{"x":893,"y":510}],"valueProb":100},{"key":"drawer","keyProb":100,"value":"","valueProb":100},{"key":"remarks","keyProb":100,"value":"(20141)鄂国证00285001正常申报一般申报滞纳金自行申报松滋市街河市镇现:主管税务所(科、分局):松滋市国家税务局办税服票价格:4615.38、车辆厂牌:铃木牌/SUZUKIHJ125K-车辆型号:铃木牌/SUZUKIHJ125K-2A、车辆识别代号:LC6PCJ2Y5F1014537","valuePos":[{"x":966,"y":538},{"x":966,"y":663},{"x":610,"y":663},{"x":610,"y":538}],"valueProb":100},{"key":"taxClearanceDetails","keyProb":100,"value":"[{\\"voucherNumber\\":\\"320160804000005082\\",\\"taxType\\":\\"车辆购置税\\",\\"itemName\\":\\"车辆购置税\\",\\"taxPeriod\\":\\"2016-08-04至2016-08-04\\",\\"date\\":\\"2016-08-04461.54\\",\\"amount\\":\\"\\"},{\\"voucherNumber\\":\\"320160804000005082\\",\\"taxType\\":\\"车辆购置税\\",\\"itemName\\":\\"滞纳金\\",\\"taxPeriod\\":\\"2016-08-04至2016-08-04\\",\\"date\\":\\"2016-08-044.85\\",\\"amount\\":\\"\\"}]","valueProb":100}],"sliceRect":{"x0":0,"y0":0,"x1":1077,"y1":0,"x2":1078,"y2":709,"x3":0,"y3":704},"width":1080}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeSocialSecurityCardVersionIIResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeSocialSecurityCardVersionIIResponseBody(name='body'),
}

/**
 * @summary 社保卡识别
 *
 * @param request RecognizeSocialSecurityCardVersionIIRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeSocialSecurityCardVersionIIResponse
 */
async function recognizeSocialSecurityCardVersionIIWithOptions(request: RecognizeSocialSecurityCardVersionIIRequest, runtime: $RuntimeOptions): RecognizeSocialSecurityCardVersionIIResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeSocialSecurityCardVersionII',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 社保卡识别
 *
 * @param request RecognizeSocialSecurityCardVersionIIRequest
 * @return RecognizeSocialSecurityCardVersionIIResponse
 */
async function recognizeSocialSecurityCardVersionII(request: RecognizeSocialSecurityCardVersionIIRequest): RecognizeSocialSecurityCardVersionIIResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeSocialSecurityCardVersionIIWithOptions(request, runtime);
}

model RecognizeTableOcrRequest {
  isHandWriting?: string(name='IsHandWriting', example='"false"'),
  lineLess?: boolean(name='LineLess', example='false'),
  needRotate?: boolean(name='NeedRotate', example='true'),
  skipDetection?: boolean(name='SkipDetection', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeTableOcrResponseBody = {
  code?: string(name='Code'),
  data?: string(name='Data'),
  message?: string(name='Message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeTableOcrResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeTableOcrResponseBody(name='body'),
}

/**
 * @summary 表格识别
 *
 * @param request RecognizeTableOcrRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeTableOcrResponse
 */
async function recognizeTableOcrWithOptions(request: RecognizeTableOcrRequest, runtime: $RuntimeOptions): RecognizeTableOcrResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.isHandWriting)) {
    query['IsHandWriting'] = request.isHandWriting;
  }
  if (!$isNull(request.lineLess)) {
    query['LineLess'] = request.lineLess;
  }
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.skipDetection)) {
    query['SkipDetection'] = request.skipDetection;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeTableOcr',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 表格识别
 *
 * @param request RecognizeTableOcrRequest
 * @return RecognizeTableOcrResponse
 */
async function recognizeTableOcr(request: RecognizeTableOcrRequest): RecognizeTableOcrResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeTableOcrWithOptions(request, runtime);
}

model RecognizeTaxClearanceCertificateRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i1/O1CN0131X3Xs1d1CHG8oypS_!!6000000003675-0-tps-1080-712.jpg'),
  body?: readable(name='body'),
}

model RecognizeTaxClearanceCertificateResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"angle":0,"data":{"issueDate":"20168月4日","certificateNumber":"2014100285","taxAuthorityName":"格","formType":"第一联","taxNumbe":"","name":"","totalAmountInWords":"肆佰陆拾陆元叁角玖分","totalAmount":"466.39","drawer":"","remarks":"(20141)鄂国证00285001正常申报一般申报滞纳金自行申报松滋市街河市镇现:主管税务所(科、分局):松滋市国家税务局办税服票价格:4615.38、车辆厂牌:铃木牌/SUZUKIHJ125K-车辆型号:铃木牌/SUZUKIHJ125K-2A、车辆识别代号:LC6PCJ2Y5F1014537","taxClearanceDetails":[{"voucherNumber":"320160804000005082","taxType":"车辆购置税","itemName":"车辆购置税","taxPeriod":"2016-08-04至2016-08-04","date":"2016-08-04461.54","amount":""},{"voucherNumber":"320160804000005082","taxType":"车辆购置税","itemName":"滞纳金","taxPeriod":"2016-08-04至2016-08-04","date":"2016-08-044.85","amount":""}]},"ftype":0,"height":712,"orgHeight":712,"orgWidth":1080,"prism_keyValueInfo":[{"key":"issueDate","keyProb":100,"value":"20168月4日","valuePos":[{"x":458,"y":129},{"x":458,"y":110},{"x":639,"y":113},{"x":638,"y":131}],"valueProb":100},{"key":"certificateNumber","keyProb":99,"value":"2014100285","valuePos":[{"x":810,"y":87},{"x":997,"y":83},{"x":997,"y":103},{"x":810,"y":106}],"valueProb":99},{"key":"taxAuthorityName","keyProb":87,"value":"格","valuePos":[{"x":840,"y":103},{"x":840,"y":128},{"x":825,"y":128},{"x":825,"y":103}],"valueProb":87},{"key":"formType","keyProb":100,"value":"第一联","valuePos":[{"x":1036,"y":247},{"x":1051,"y":247},{"x":1051,"y":289},{"x":1036,"y":289}],"valueProb":100},{"key":"taxNumbe","keyProb":100,"value":"","valueProb":100},{"key":"name","keyProb":100,"value":"","valueProb":100},{"key":"totalAmountInWords","keyProb":100,"value":"肆佰陆拾陆元叁角玖分","valuePos":[{"x":239,"y":498},{"x":395,"y":496},{"x":395,"y":514},{"x":239,"y":515}],"valueProb":100},{"key":"totalAmount","keyProb":100,"value":"466.39","valuePos":[{"x":892,"y":494},{"x":957,"y":493},{"x":957,"y":508},{"x":893,"y":510}],"valueProb":100},{"key":"drawer","keyProb":100,"value":"","valueProb":100},{"key":"remarks","keyProb":100,"value":"(20141)鄂国证00285001正常申报一般申报滞纳金自行申报松滋市街河市镇现:主管税务所(科、分局):松滋市国家税务局办税服票价格:4615.38、车辆厂牌:铃木牌/SUZUKIHJ125K-车辆型号:铃木牌/SUZUKIHJ125K-2A、车辆识别代号:LC6PCJ2Y5F1014537","valuePos":[{"x":966,"y":538},{"x":966,"y":663},{"x":610,"y":663},{"x":610,"y":538}],"valueProb":100},{"key":"taxClearanceDetails","keyProb":100,"value":"[{\\"voucherNumber\\":\\"320160804000005082\\",\\"taxType\\":\\"车辆购置税\\",\\"itemName\\":\\"车辆购置税\\",\\"taxPeriod\\":\\"2016-08-04至2016-08-04\\",\\"date\\":\\"2016-08-04461.54\\",\\"amount\\":\\"\\"},{\\"voucherNumber\\":\\"320160804000005082\\",\\"taxType\\":\\"车辆购置税\\",\\"itemName\\":\\"滞纳金\\",\\"taxPeriod\\":\\"2016-08-04至2016-08-04\\",\\"date\\":\\"2016-08-044.85\\",\\"amount\\":\\"\\"}]","valueProb":100}],"sliceRect":{"x0":0,"y0":0,"x1":1077,"y1":0,"x2":1078,"y2":709,"x3":0,"y3":704},"width":1080}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeTaxClearanceCertificateResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeTaxClearanceCertificateResponseBody(name='body'),
}

/**
 * @summary 税收完税证明识别
 *
 * @param request RecognizeTaxClearanceCertificateRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeTaxClearanceCertificateResponse
 */
async function recognizeTaxClearanceCertificateWithOptions(request: RecognizeTaxClearanceCertificateRequest, runtime: $RuntimeOptions): RecognizeTaxClearanceCertificateResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeTaxClearanceCertificate',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 税收完税证明识别
 *
 * @param request RecognizeTaxClearanceCertificateRequest
 * @return RecognizeTaxClearanceCertificateResponse
 */
async function recognizeTaxClearanceCertificate(request: RecognizeTaxClearanceCertificateRequest): RecognizeTaxClearanceCertificateResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeTaxClearanceCertificateWithOptions(request, runtime);
}

model RecognizeTaxiInvoiceRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1.OicXebviK0jSZFNXXaApXXa-364-982.jpg'),
  body?: readable(name='body'),
}

model RecognizeTaxiInvoiceResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data', example='{ 	"data": { 		"licensePlateNumber": "B-30T76", 		"date": "2018-09-28", 		"invoiceCode": "150001583910", 		"invoiceNumber": "22566685", 		"mileage": "22.8", 		"fare": "¥57.00", 		"dropOffTime": "01：40", 		"pickUpTime": "01：19" 	}, 	"ftype": 0, 	"height": 982, 	"orgHeight": 982, 	"orgWidth": 364,  	"width": 364 }'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeTaxiInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeTaxiInvoiceResponseBody(name='body'),
}

/**
 * @summary 出租车发票
 *
 * @param request RecognizeTaxiInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeTaxiInvoiceResponse
 */
async function recognizeTaxiInvoiceWithOptions(request: RecognizeTaxiInvoiceRequest, runtime: $RuntimeOptions): RecognizeTaxiInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeTaxiInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 出租车发票
 *
 * @param request RecognizeTaxiInvoiceRequest
 * @return RecognizeTaxiInvoiceResponse
 */
async function recognizeTaxiInvoice(request: RecognizeTaxiInvoiceRequest): RecognizeTaxiInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeTaxiInvoiceWithOptions(request, runtime);
}

model RecognizeThaiRequest {
  needRotate?: boolean(name='NeedRotate', example='false'),
  outputCharInfo?: boolean(name='OutputCharInfo', example='false'),
  outputTable?: boolean(name='OutputTable', example='false'),
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeThaiResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data', example='{"angle":0,"content":"4สัป าR  ๗  เริมเห็นผิวที่เรียบเบียน  วิรีการใช้ LEshop uA","height":887,"orgHeight":887,"orgWidth":790,"prism_version":"1.0.9","prism_wnum":26,"prism_wordsInfo":[{"angle":-89,"direction":0,"height":210,"pos":[{"x":285,"y":14},{"x":495,"y":14},{"x":495,"y":63},{"x":285,"y":63}],"prob":85,"width":48,"word":"4สัป าR ","x":365,"y":-66}],"width":790}'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeThaiResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeThaiResponseBody(name='body'),
}

/**
 * @summary 泰语识别
 *
 * @param request RecognizeThaiRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeThaiResponse
 */
async function recognizeThaiWithOptions(request: RecognizeThaiRequest, runtime: $RuntimeOptions): RecognizeThaiResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.needRotate)) {
    query['NeedRotate'] = request.needRotate;
  }
  if (!$isNull(request.outputCharInfo)) {
    query['OutputCharInfo'] = request.outputCharInfo;
  }
  if (!$isNull(request.outputTable)) {
    query['OutputTable'] = request.outputTable;
  }
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeThai',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 泰语识别
 *
 * @param request RecognizeThaiRequest
 * @return RecognizeThaiResponse
 */
async function recognizeThai(request: RecognizeThaiRequest): RecognizeThaiResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeThaiWithOptions(request, runtime);
}

model RecognizeTollInvoiceRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i3/O1CN01uUHo411DCwPsBWDMJ_!!6000000000181-0-tps-199-254.jpg'),
  body?: readable(name='body'),
}

model RecognizeTollInvoiceResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"angle":0,"data":{"title":"苏宁用打发","formType":"发票联","invoiceCode":"132001681414","invoiceNumber":"53184969","date":"","time":"","vehicleType":"客1","entranceName":"江","exitName":"","totalAmount":"0.00"},"ftype":0,"height":254,"orgHeight":254,"orgWidth":199,"prism_keyValueInfo":[{"key":"title","keyProb":98,"value":"苏宁用打发","valuePos":[{"x":174,"y":20},{"x":174,"y":35},{"x":24,"y":34},{"x":24,"y":19}],"valueProb":98},{"key":"formType","keyProb":89,"value":"发票联","valuePos":[{"x":50,"y":41},{"x":131,"y":37},{"x":131,"y":52},{"x":50,"y":56}],"valueProb":89},{"key":"invoiceCode","keyProb":100,"value":"132001681414","valuePos":[{"x":150,"y":94},{"x":150,"y":105},{"x":63,"y":105},{"x":63,"y":94}],"valueProb":100},{"key":"invoiceNumber","keyProb":100,"value":"53184969","valuePos":[{"x":119,"y":109},{"x":119,"y":120},{"x":63,"y":120},{"x":63,"y":109}],"valueProb":100},{"key":"date","keyProb":100,"value":"","valueProb":100},{"key":"time","keyProb":100,"value":"","valueProb":100},{"key":"vehicleType","keyProb":95,"value":"客1","valuePos":[{"x":40,"y":180},{"x":40,"y":192},{"x":28,"y":192},{"x":28,"y":180}],"valueProb":95},{"key":"entranceName","keyProb":98,"value":"江","valuePos":[{"x":96,"y":128},{"x":96,"y":140},{"x":39,"y":140},{"x":39,"y":128}],"valueProb":98},{"key":"exitName","keyProb":100,"value":"","valueProb":100},{"key":"totalAmount","keyProb":85,"value":"0.00","valuePos":[{"x":70,"y":181},{"x":70,"y":190},{"x":55,"y":190},{"x":55,"y":181}],"valueProb":85}],"sliceRect":{"x0":0,"y0":2,"x1":196,"y1":1,"x2":198,"y2":251,"x3":0,"y3":252},"width":199}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeTollInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeTollInvoiceResponseBody(name='body'),
}

/**
 * @summary 过路过桥费发票识别
 *
 * @param request RecognizeTollInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeTollInvoiceResponse
 */
async function recognizeTollInvoiceWithOptions(request: RecognizeTollInvoiceRequest, runtime: $RuntimeOptions): RecognizeTollInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeTollInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 过路过桥费发票识别
 *
 * @param request RecognizeTollInvoiceRequest
 * @return RecognizeTollInvoiceResponse
 */
async function recognizeTollInvoice(request: RecognizeTollInvoiceRequest): RecognizeTollInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeTollInvoiceWithOptions(request, runtime);
}

model RecognizeTradeMarkCertificationRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1SZiGdfb2gK0jSZK9XXaEgFXa-1654-2340.png'),
  body?: readable(name='body'),
}

model RecognizeTradeMarkCertificationResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeTradeMarkCertificationResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeTradeMarkCertificationResponseBody(name='body'),
}

/**
 * @summary 商标注册证
 *
 * @param request RecognizeTradeMarkCertificationRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeTradeMarkCertificationResponse
 */
async function recognizeTradeMarkCertificationWithOptions(request: RecognizeTradeMarkCertificationRequest, runtime: $RuntimeOptions): RecognizeTradeMarkCertificationResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeTradeMarkCertification',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 商标注册证
 *
 * @param request RecognizeTradeMarkCertificationRequest
 * @return RecognizeTradeMarkCertificationResponse
 */
async function recognizeTradeMarkCertification(request: RecognizeTradeMarkCertificationRequest): RecognizeTradeMarkCertificationResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeTradeMarkCertificationWithOptions(request, runtime);
}

model RecognizeTrainInvoiceRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1u1HrUmzqK1RjSZFpXXakSXXa-1200-900.jpg'),
  body?: readable(name='body'),
}

model RecognizeTrainInvoiceResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeTrainInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeTrainInvoiceResponseBody(name='body'),
}

/**
 * @summary 火车票
 *
 * @param request RecognizeTrainInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeTrainInvoiceResponse
 */
async function recognizeTrainInvoiceWithOptions(request: RecognizeTrainInvoiceRequest, runtime: $RuntimeOptions): RecognizeTrainInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeTrainInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 火车票
 *
 * @param request RecognizeTrainInvoiceRequest
 * @return RecognizeTrainInvoiceResponse
 */
async function recognizeTrainInvoice(request: RecognizeTrainInvoiceRequest): RecognizeTrainInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeTrainInvoiceWithOptions(request, runtime);
}

model RecognizeUsedCarInvoiceRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i4/O1CN01NiY6e220zrtvT6dFJ_!!6000000006921-0-tps-3468-4624.jpg'),
  body?: readable(name='body'),
}

model RecognizeUsedCarInvoiceResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"angle":270,"data":{"title":"二手车销售统一发票","formType":"发票联","invoiceDate":"2021-03-19","invoiceCode":"021002000117","invoiceNumber":"00713899","printedInvoiceCode":"021002000117","printedInvoiceNumber":"00713899","taxCode":"03300173880207579449","purchaserName":"李壮","purchaserCode":"210105198712104354","purchaserAddress":"沈阳市皇姑区泰山路69-50号3-1-3","purchaserPhoneNumber":"18947857689","sellerName":"张鹏","sellerCode":"210105197807263716","sellerAddress":"沈阳市皇姑区宁山东路甲2号3-5-2","sellerPhoneNumber":"17641587456","licensePlateNumber":"辽A6L136","certificateNumber":"210008639051","vehicleType":"小型轿车","vinCode":"WAUYGB4H3FN031973","brandMode":"奥迪WAUYGB4H","vehicleAdministrationName":"沈阳市车管所","totalAmountInWords":"壹万圆整","totalAmount":"10000.00","marketName":"沈阳车顶尚二手车交易市场有限公司","marketTaxNumber":"91210106MA0TURHE35","marketAddress":"沈阳市铁西区北二西路29甲4号(9门)","marketBankAccountInfo":"葫芦岛银行股份有限公司沈阳分行20008411159000000025","marketPhoneNumber":"15940287043","remarks":"","drawer":"张丽"},"ftype":0,"height":4624,"orgHeight":4624,"orgWidth":3468,"prism_keyValueInfo":[{"key":"title","keyProb":100,"value":"二手车销售统一发票","valuePos":[{"x":2715,"y":228},{"x":2715,"y":347},{"x":1283,"y":352},{"x":1282,"y":233}],"valueProb":100},{"key":"formType","keyProb":85,"value":"发票联","valuePos":[{"x":2289,"y":401},{"x":2290,"y":510},{"x":1701,"y":512},{"x":1701,"y":403}],"valueProb":85},{"key":"invoiceDate","keyProb":100,"value":"2021-03-19","valuePos":[{"x":728,"y":568},{"x":729,"y":504},{"x":1142,"y":509},{"x":1141,"y":573}],"valueProb":100},{"key":"invoiceCode","keyProb":100,"value":"021002000117","valuePos":[{"x":3090,"y":376},{"x":3676,"y":359},{"x":3678,"y":432},{"x":3093,"y":450}],"valueProb":100},{"key":"invoiceNumber","keyProb":100,"value":"00713899","valuePos":[{"x":3099,"y":457},{"x":3470,"y":449},{"x":3472,"y":523},{"x":3100,"y":530}],"valueProb":100},{"key":"printedInvoiceCode","keyProb":100,"value":"021002000117","valuePos":[{"x":1307,"y":621},{"x":1308,"y":683},{"x":812,"y":688},{"x":812,"y":626}],"valueProb":100},{"key":"printedInvoiceNumber","keyProb":100,"value":"00713899","valuePos":[{"x":811,"y":797},{"x":812,"y":731},{"x":1155,"y":738},{"x":1153,"y":803}],"valueProb":100},{"key":"taxCode","keyProb":100,"value":"03300173880207579449","valuePos":[{"x":3005,"y":755},{"x":3005,"y":818},{"x":2184,"y":825},{"x":2183,"y":761}],"valueProb":100},{"key":"purchaserName","keyProb":100,"value":"李壮","valuePos":[{"x":1139,"y":977},{"x":1260,"y":977},{"x":1260,"y":1044},{"x":1139,"y":1044}],"valueProb":100},{"key":"purchaserCode","keyProb":100,"value":"210105198712104354","valuePos":[{"x":3502,"y":992},{"x":3502,"y":1054},{"x":2802,"y":1054},{"x":2802,"y":992}],"valueProb":100},{"key":"purchaserAddress","keyProb":100,"value":"沈阳市皇姑区泰山路69-50号3-1-3","valuePos":[{"x":1138,"y":1105},{"x":1988,"y":1105},{"x":1988,"y":1176},{"x":1138,"y":1176}],"valueProb":100},{"key":"purchaserPhoneNumber","keyProb":100,"value":"18947857689","valuePos":[{"x":2996,"y":1115},{"x":3466,"y":1115},{"x":3466,"y":1181},{"x":2996,"y":1181}],"valueProb":100},{"key":"sellerName","keyProb":100,"value":"张鹏","valuePos":[{"x":1137,"y":1227},{"x":1259,"y":1227},{"x":1259,"y":1296},{"x":1137,"y":1296}],"valueProb":100},{"key":"sellerCode","keyProb":100,"value":"210105197807263716","valuePos":[{"x":3501,"y":1245},{"x":3501,"y":1305},{"x":2807,"y":1307},{"x":2806,"y":1247}],"valueProb":100},{"key":"sellerAddress","keyProb":100,"value":"沈阳市皇姑区宁山东路甲2号3-5-2","valuePos":[{"x":1991,"y":1353},{"x":1991,"y":1422},{"x":1137,"y":1426},{"x":1136,"y":1356}],"valueProb":100},{"key":"sellerPhoneNumber","keyProb":100,"value":"17641587456","valuePos":[{"x":3460,"y":1372},{"x":3461,"y":1433},{"x":2996,"y":1435},{"x":2996,"y":1373}],"valueProb":100},{"key":"licensePlateNumber","keyProb":100,"value":"辽A6L136","valuePos":[{"x":1470,"y":1471},{"x":1471,"y":1541},{"x":1140,"y":1544},{"x":1139,"y":1474}],"valueProb":100},{"key":"certificateNumber","keyProb":100,"value":"210008639051","valuePos":[{"x":2433,"y":1489},{"x":2433,"y":1549},{"x":1981,"y":1553},{"x":1981,"y":1493}],"valueProb":100},{"key":"vehicleType","keyProb":100,"value":"小型轿车","valuePos":[{"x":2994,"y":1498},{"x":3229,"y":1498},{"x":3229,"y":1562},{"x":2994,"y":1562}],"valueProb":100},{"key":"vinCode","keyProb":100,"value":"WAUYGB4H3FN031973","valuePos":[{"x":1601,"y":1587},{"x":1601,"y":1633},{"x":1138,"y":1638},{"x":1137,"y":1591}],"valueProb":100},{"key":"brandMode","keyProb":100,"value":"奥迪WAUYGB4H","valuePos":[{"x":2330,"y":1616},{"x":2330,"y":1677},{"x":1986,"y":1677},{"x":1986,"y":1616}],"valueProb":100},{"key":"vehicleAdministrationName","keyProb":100,"value":"沈阳市车管所","valuePos":[{"x":3347,"y":1621},{"x":3347,"y":1690},{"x":2989,"y":1693},{"x":2989,"y":1624}],"valueProb":100},{"key":"totalAmountInWords","keyProb":100,"value":"壹万圆整","valuePos":[{"x":1528,"y":1730},{"x":1529,"y":1799},{"x":1292,"y":1801},{"x":1291,"y":1732}],"valueProb":100},{"key":"totalAmount","keyProb":100,"value":"10000.00","valuePos":[{"x":3479,"y":1746},{"x":3479,"y":1816},{"x":3048,"y":1820},{"x":3047,"y":1749}],"valueProb":100},{"key":"marketName","keyProb":100,"value":"沈阳车顶尚二手车交易市场有限公司","valuePos":[{"x":2037,"y":2282},{"x":2037,"y":2354},{"x":1124,"y":2362},{"x":1124,"y":2290}],"valueProb":100},{"key":"marketTaxNumber","keyProb":96,"value":"91210106MA0TURHE35","valuePos":[{"x":3079,"y":2255},{"x":3079,"y":2314},{"x":2397,"y":2321},{"x":2396,"y":2261}],"valueProb":96},{"key":"marketAddress","keyProb":100,"value":"沈阳市铁西区北二西路29甲4号(9门)","valuePos":[{"x":3306,"y":2378},{"x":3307,"y":2445},{"x":2399,"y":2453},{"x":2399,"y":2387}],"valueProb":100},{"key":"marketBankAccountInfo","keyProb":100,"value":"葫芦岛银行股份有限公司沈阳分行20008411159000000025","valuePos":[{"x":2522,"y":2480},{"x":2523,"y":2554},{"x":1109,"y":2567},{"x":1109,"y":2494}],"valueProb":100},{"key":"marketPhoneNumber","keyProb":100,"value":"15940287043","valuePos":[{"x":3172,"y":2579},{"x":3173,"y":2518},{"x":3603,"y":2530},{"x":3601,"y":2590}],"valueProb":100},{"key":"remarks","keyProb":100,"value":"","valueProb":100},{"key":"drawer","keyProb":100,"value":"张丽","valuePos":[{"x":2787,"y":2819},{"x":2789,"y":2756},{"x":2914,"y":2761},{"x":2911,"y":2823}],"valueProb":100}],"sliceRect":{"x0":103,"y0":372,"x1":3174,"y1":428,"x2":3041,"y2":4364,"x3":161,"y3":4360},"width":3468}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeUsedCarInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeUsedCarInvoiceResponseBody(name='body'),
}

/**
 * @summary 二手车统一销售发票识别
 *
 * @param request RecognizeUsedCarInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeUsedCarInvoiceResponse
 */
async function recognizeUsedCarInvoiceWithOptions(request: RecognizeUsedCarInvoiceRequest, runtime: $RuntimeOptions): RecognizeUsedCarInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeUsedCarInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 二手车统一销售发票识别
 *
 * @param request RecognizeUsedCarInvoiceRequest
 * @return RecognizeUsedCarInvoiceResponse
 */
async function recognizeUsedCarInvoice(request: RecognizeUsedCarInvoiceRequest): RecognizeUsedCarInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeUsedCarInvoiceWithOptions(request, runtime);
}

model RecognizeVehicleCertificationRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i1/O1CN0196uE7i1FXD9TpYqLy_!!6000000000496-0-tps-3024-4032.jpg'),
  body?: readable(name='body'),
}

model RecognizeVehicleCertificationResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"data":{"certificateNumber":"YG170ZLM1234567","issueDate":"2021年01月01日","manufactureName":"中国重汽集团济南卡车股份有限公司","vehicleBrand":"豪沃牌","vehicleName":"自卸汽车","vehicleModel":"ZZ3257N414GE1","vinCode":"LZZ1ELSEXLW644557","vehicleColor":"水晶红","chassisModel":"ZZ3257N384GE1","chassisId":"2578516","chassisCertificateNumber":"","engineModel":"WP10H400E50","engineNumber":"7520K064819","fuelType":"柴油","displacement":"9500","power":"294","emissionStandard":"GB17691-2005国V","fuelConsumption":"","overallDimension":"8920×2550×3450","containerDimension":"6000×2350×1500","springNumber":"11/12","tireNumber":"10","tireSize":"12.00R2016PR","frontWheelTrack":"2022","rearWheelTrack":"1850/1850","wheelbase":"4125+1350","axleLoad":"7000/18000(二轴组)","axleNumber":"3","steeringForm":"方向盘","totalWeight":"25000","equipmentWeight":"12500","maximumLadenMass":"12370","massUtilizationCoefficient":"1.00","tractionWeight":"","MaximumLoadMass":"","cabPassengerCapacity":"2","passengerCapacity":"","maxDesignSpeed":"80","manufactureDate":"2020年12月03日","remarks":"备注:货厢自卸方式为后卸。"},"ftype":1,"height":4032,"orgHeight":4032,"orgWidth":3024,"prism_keyValueInfo":[{"key":"certificateNumber","keyProb":100,"value":"YG170ZLM1234567","valuePos":[{"x":554,"y":85},{"x":932,"y":84},{"x":932,"y":133},{"x":554,"y":135}],"valueProb":100},{"key":"issueDate","keyProb":100,"value":"2021年01月01日","valuePos":[{"x":1637,"y":132},{"x":1639,"y":82},{"x":2002,"y":91},{"x":2001,"y":142}],"valueProb":100},{"key":"manufactureName","keyProb":100,"value":"中国重汽集团济南卡车股份有限公司","valuePos":[{"x":552,"y":212},{"x":554,"y":164},{"x":1265,"y":180},{"x":1264,"y":229}],"valueProb":100},{"key":"vehicleBrand","keyProb":100,"value":"豪沃牌","valuePos":[{"x":554,"y":292},{"x":556,"y":240},{"x":693,"y":243},{"x":692,"y":296}],"valueProb":100},{"key":"vehicleName","keyProb":100,"value":"自卸汽车","valuePos":[{"x":1338,"y":257},{"x":1338,"y":307},{"x":1161,"y":307},{"x":1161,"y":257}],"valueProb":100},{"key":"vehicleModel","keyProb":100,"value":"ZZ3257N414GE1","valuePos":[{"x":550,"y":366},{"x":551,"y":319},{"x":846,"y":325},{"x":845,"y":372}],"valueProb":100},{"key":"vinCode","keyProb":100,"value":"LZZ1ELSEXLW644557","valuePos":[{"x":1636,"y":373},{"x":1638,"y":328},{"x":2016,"y":352},{"x":2013,"y":397}],"valueProb":100},{"key":"vehicleColor","keyProb":100,"value":"水晶红","valuePos":[{"x":554,"y":447},{"x":554,"y":395},{"x":690,"y":398},{"x":689,"y":449}],"valueProb":100},{"key":"chassisModel","keyProb":100,"value":"ZZ3257N384GE1","valuePos":[{"x":550,"y":521},{"x":550,"y":474},{"x":848,"y":480},{"x":847,"y":526}],"valueProb":100},{"key":"chassisId","keyProb":100,"value":"2578516","valuePos":[{"x":1635,"y":529},{"x":1637,"y":485},{"x":1801,"y":489},{"x":1800,"y":534}],"valueProb":100},{"key":"chassisCertificateNumber","keyProb":100,"value":"","valueProb":100},{"key":"engineModel","keyProb":100,"value":"WP10H400E50","valuePos":[{"x":1634,"y":607},{"x":1635,"y":562},{"x":1886,"y":570},{"x":1884,"y":614}],"valueProb":100},{"key":"engineNumber","keyProb":100,"value":"7520K064819","valuePos":[{"x":548,"y":672},{"x":549,"y":631},{"x":804,"y":635},{"x":804,"y":676}],"valueProb":100},{"key":"fuelType","keyProb":100,"value":"柴油","valuePos":[{"x":641,"y":705},{"x":641,"y":755},{"x":550,"y":755},{"x":550,"y":705}],"valueProb":100},{"key":"displacement","keyProb":100,"value":"9500","valuePos":[{"x":1631,"y":760},{"x":1631,"y":719},{"x":1728,"y":722},{"x":1727,"y":762}],"valueProb":100},{"key":"power","keyProb":100,"value":"294","valuePos":[{"x":2002,"y":729},{"x":2002,"y":769},{"x":1930,"y":769},{"x":1930,"y":729}],"valueProb":100},{"key":"emissionStandard","keyProb":100,"value":"GB17691-2005国V","valuePos":[{"x":545,"y":828},{"x":545,"y":782},{"x":904,"y":789},{"x":903,"y":835}],"valueProb":100},{"key":"fuelConsumption","keyProb":100,"value":"","valueProb":100},{"key":"overallDimension","keyProb":100,"value":"8920×2550×3450","valuePos":[{"x":547,"y":979},{"x":548,"y":939},{"x":1042,"y":950},{"x":1041,"y":989}],"valueProb":100},{"key":"containerDimension","keyProb":100,"value":"6000×2350×1500","valuePos":[{"x":1628,"y":992},{"x":1629,"y":949},{"x":2119,"y":962},{"x":2117,"y":1005}],"valueProb":100},{"key":"springNumber","keyProb":100,"value":"11/12","valuePos":[{"x":662,"y":1017},{"x":663,"y":1059},{"x":549,"y":1060},{"x":548,"y":1018}],"valueProb":100},{"key":"tireNumber","keyProb":100,"value":"10","valuePos":[{"x":1676,"y":1032},{"x":1676,"y":1073},{"x":1628,"y":1073},{"x":1628,"y":1032}],"valueProb":100},{"key":"tireSize","keyProb":100,"value":"12.00R2016PR","valuePos":[{"x":545,"y":1133},{"x":546,"y":1094},{"x":839,"y":1099},{"x":839,"y":1139}],"valueProb":100},{"key":"frontWheelTrack","keyProb":100,"value":"2022","valuePos":[{"x":640,"y":1169},{"x":640,"y":1208},{"x":545,"y":1210},{"x":544,"y":1170}],"valueProb":100},{"key":"rearWheelTrack","keyProb":100,"value":"1850/1850","valuePos":[{"x":1148,"y":1223},{"x":1149,"y":1183},{"x":1349,"y":1186},{"x":1349,"y":1227}],"valueProb":100},{"key":"wheelbase","keyProb":100,"value":"4125+1350","valuePos":[{"x":546,"y":1286},{"x":547,"y":1244},{"x":752,"y":1248},{"x":751,"y":1290}],"valueProb":100},{"key":"axleLoad","keyProb":100,"value":"7000/18000(二轴组)","valuePos":[{"x":539,"y":1364},{"x":539,"y":1316},{"x":946,"y":1325},{"x":945,"y":1372}],"valueProb":100},{"key":"axleNumber","keyProb":100,"value":"3","valuePos":[{"x":567,"y":1398},{"x":567,"y":1438},{"x":541,"y":1438},{"x":541,"y":1398}],"valueProb":100},{"key":"steeringForm","keyProb":100,"value":"方向盘","valuePos":[{"x":1757,"y":1412},{"x":1757,"y":1463},{"x":1622,"y":1464},{"x":1622,"y":1413}],"valueProb":100},{"key":"totalWeight","keyProb":100,"value":"25000","valuePos":[{"x":536,"y":1512},{"x":538,"y":1471},{"x":658,"y":1475},{"x":657,"y":1515}],"valueProb":100},{"key":"equipmentWeight","keyProb":100,"value":"12500","valuePos":[{"x":1735,"y":1491},{"x":1736,"y":1532},{"x":1620,"y":1534},{"x":1620,"y":1492}],"valueProb":100},{"key":"maximumLadenMass","keyProb":100,"value":"12370","valuePos":[{"x":539,"y":1590},{"x":539,"y":1547},{"x":656,"y":1549},{"x":656,"y":1592}],"valueProb":100},{"key":"massUtilizationCoefficient","keyProb":100,"value":"1.00","valuePos":[{"x":1712,"y":1568},{"x":1712,"y":1608},{"x":1617,"y":1610},{"x":1616,"y":1569}],"valueProb":100},{"key":"tractionWeight","keyProb":100,"value":"","valueProb":100},{"key":"MaximumLoadMass","keyProb":100,"value":"","valueProb":100},{"key":"cabPassengerCapacity","keyProb":100,"value":"2","valuePos":[{"x":560,"y":1777},{"x":560,"y":1817},{"x":532,"y":1817},{"x":532,"y":1777}],"valueProb":100},{"key":"passengerCapacity","keyProb":100,"value":"","valueProb":100},{"key":"maxDesignSpeed","keyProb":100,"value":"80","valuePos":[{"x":581,"y":1931},{"x":581,"y":1971},{"x":530,"y":1971},{"x":530,"y":1931}],"valueProb":100},{"key":"manufactureDate","keyProb":100,"value":"2020年12月03日","valuePos":[{"x":840,"y":2003},{"x":841,"y":2048},{"x":523,"y":2052},{"x":522,"y":2006}],"valueProb":100},{"key":"remarks","keyProb":100,"value":"备注:货厢自卸方式为后卸。","valuePos":[{"x":620,"y":2080},{"x":620,"y":2130},{"x":54,"y":2134},{"x":53,"y":2083}],"valueProb":100}],"sliceRect":{"x0":330,"y0":466,"x1":2530,"y1":420,"x2":2544,"y2":3811,"x3":229,"y3":3746},"width":3024}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeVehicleCertificationResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeVehicleCertificationResponseBody(name='body'),
}

/**
 * @summary 车辆合格证识别
 *
 * @param request RecognizeVehicleCertificationRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeVehicleCertificationResponse
 */
async function recognizeVehicleCertificationWithOptions(request: RecognizeVehicleCertificationRequest, runtime: $RuntimeOptions): RecognizeVehicleCertificationResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeVehicleCertification',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 车辆合格证识别
 *
 * @param request RecognizeVehicleCertificationRequest
 * @return RecognizeVehicleCertificationResponse
 */
async function recognizeVehicleCertification(request: RecognizeVehicleCertificationRequest): RecognizeVehicleCertificationResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeVehicleCertificationWithOptions(request, runtime);
}

model RecognizeVehicleLicenseRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1Wo7eXAvoK1RjSZFDXXXY3pXa-2512-3509.jpg'),
  body?: readable(name='body'),
}

model RecognizeVehicleLicenseResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeVehicleLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeVehicleLicenseResponseBody(name='body'),
}

/**
 * @summary 行驶证识别
 *
 * @param request RecognizeVehicleLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeVehicleLicenseResponse
 */
async function recognizeVehicleLicenseWithOptions(request: RecognizeVehicleLicenseRequest, runtime: $RuntimeOptions): RecognizeVehicleLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeVehicleLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 行驶证识别
 *
 * @param request RecognizeVehicleLicenseRequest
 * @return RecognizeVehicleLicenseResponse
 */
async function recognizeVehicleLicense(request: RecognizeVehicleLicenseRequest): RecognizeVehicleLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeVehicleLicenseWithOptions(request, runtime);
}

model RecognizeVehicleRegistrationRequest {
  url?: string(name='Url', example='https://img.alicdn.com/imgextra/i1/O1CN01NA1F7A1cSO8cnFQ7m_!!6000000003599-0-tps-844-1125.jpg'),
  body?: readable(name='body'),
}

model RecognizeVehicleRegistrationResponseBody = {
  code?: string(name='Code', example='noPermission'),
  data?: string(name='Data', example='{"codes":[{"data":"310007798232","points":[{"x":502,"y":6},{"x":768,"y":6},{"x":768,"y":52},{"x":502,"y":52}],"type":"Codabar"}],"data":{"barCode":"310007798232","vehicleOwnerInfo":"某某某限有限公司/统一社会信用代码/12345678682296194","registrationAuthority":"上海市公安局交通警察总队车辆管理所","registrationDate":"2021-04-28","registrationNumber":"沪AG12345","vehicleType":"小型轿车","vehicleBrand":"大众汽车牌","vehicleModel":"SVW7142BPV","vehicleColor":"","vinCode":"LSVCY6C49MN027789","isDomestic":"国产","engineNumber":"035154","engineType":"DUK","fuelType":"混合动力","displacement":"1395","power":"110","manufactureName":"上汽大众汽车有限公司","steeringForm":"方向盘","frontWheelTrack":"1584","rearWheelTrack":"1570","tireNumber":"4","tireSize":"215/60R1695V","springNumber":"","wheelbase":"2871","axleNumber":"2","overallDimension":"4948×1836×1469","containerDimension":"","totalWeight":"2190","permittedWeight":"","passengerCapacity":"","tractionWeight":"","cabPassengerCapacity":"","useNature":"租赁","acquisitionMethod":"购买","manufactureDate":"2021-03-16","issueAuthority":"上海市公安局交通警察总队","issueDate":"2021-04-28"},"ftype":0,"height":1125,"orgHeight":1125,"orgWidth":844,"prism_keyValueInfo":[{"key":"barCode","keyProb":96,"value":"310007798232","valuePos":[{"x":545,"y":45},{"x":735,"y":42},{"x":736,"y":53},{"x":545,"y":55}],"valueProb":96},{"key":"vehicleOwnerInfo","keyProb":100,"value":"某某某限有限公司/统一社会信用代码/12345678682296194","valuePos":[{"x":317,"y":70},{"x":723,"y":68},{"x":723,"y":84},{"x":318,"y":87}],"valueProb":100},{"key":"registrationAuthority","keyProb":100,"value":"上海市公安局交通警察总队车辆管理所","valuePos":[{"x":165,"y":89},{"x":369,"y":87},{"x":370,"y":112},{"x":166,"y":114}],"valueProb":100},{"key":"registrationDate","keyProb":100,"value":"2021-04-28","valuePos":[{"x":463,"y":93},{"x":538,"y":92},{"x":538,"y":104},{"x":464,"y":106}],"valueProb":100},{"key":"registrationNumber","keyProb":100,"value":"沪AG12345","valuePos":[{"x":733,"y":93},{"x":733,"y":107},{"x":669,"y":107},{"x":669,"y":93}],"valueProb":100},{"key":"vehicleType","keyProb":84,"value":"小型轿车","valuePos":[{"x":262,"y":588},{"x":262,"y":603},{"x":205,"y":603},{"x":205,"y":588}],"valueProb":84},{"key":"vehicleBrand","keyProb":100,"value":"大众汽车牌","valuePos":[{"x":569,"y":606},{"x":570,"y":592},{"x":643,"y":594},{"x":642,"y":608}],"valueProb":100},{"key":"vehicleModel","keyProb":99,"value":"SVW7142BPV","valuePos":[{"x":277,"y":616},{"x":277,"y":630},{"x":206,"y":630},{"x":206,"y":616}],"valueProb":99},{"key":"vehicleColor","keyProb":77,"value":"","valuePos":[{"x":585,"y":620},{"x":585,"y":635},{"x":569,"y":635},{"x":569,"y":620}],"valueProb":77},{"key":"vinCode","keyProb":100,"value":"LSVCY6C49MN027789","valuePos":[{"x":324,"y":645},{"x":324,"y":659},{"x":204,"y":659},{"x":204,"y":645}],"valueProb":100},{"key":"isDomestic","keyProb":96,"value":"国产","valuePos":[{"x":568,"y":662},{"x":569,"y":649},{"x":599,"y":650},{"x":599,"y":664}],"valueProb":96},{"key":"engineNumber","keyProb":100,"value":"035154","valuePos":[{"x":203,"y":686},{"x":204,"y":671},{"x":250,"y":672},{"x":250,"y":688}],"valueProb":100},{"key":"engineType","keyProb":100,"value":"DUK","valuePos":[{"x":594,"y":678},{"x":594,"y":692},{"x":568,"y":692},{"x":568,"y":678}],"valueProb":100},{"key":"fuelType","keyProb":100,"value":"混合动力","valuePos":[{"x":260,"y":702},{"x":260,"y":717},{"x":204,"y":717},{"x":204,"y":702}],"valueProb":100},{"key":"displacement","keyProb":100,"value":"1395","valuePos":[{"x":600,"y":707},{"x":600,"y":722},{"x":569,"y":722},{"x":569,"y":707}],"valueProb":100},{"key":"power","keyProb":100,"value":"110","valuePos":[{"x":687,"y":708},{"x":687,"y":723},{"x":663,"y":723},{"x":663,"y":708}],"valueProb":100},{"key":"manufactureName","keyProb":100,"value":"上汽大众汽车有限公司","valuePos":[{"x":342,"y":731},{"x":342,"y":746},{"x":205,"y":746},{"x":205,"y":731}],"valueProb":100},{"key":"steeringForm","keyProb":100,"value":"方向盘","valueProb":100},{"key":"frontWheelTrack","keyProb":100,"value":"1584","valuePos":[{"x":252,"y":760},{"x":252,"y":774},{"x":222,"y":774},{"x":222,"y":760}],"valueProb":100},{"key":"rearWheelTrack","keyProb":100,"value":"1570","valuePos":[{"x":370,"y":761},{"x":370,"y":775},{"x":340,"y":775},{"x":340,"y":761}],"valueProb":100},{"key":"tireNumber","keyProb":100,"value":"4","valuePos":[{"x":580,"y":766},{"x":580,"y":781},{"x":568,"y":781},{"x":568,"y":766}],"valueProb":100},{"key":"tireSize","keyProb":100,"value":"215/60R1695V","valuePos":[{"x":302,"y":788},{"x":302,"y":803},{"x":203,"y":803},{"x":203,"y":788}],"valueProb":100},{"key":"springNumber","keyProb":100,"value":"","valueProb":100},{"key":"wheelbase","keyProb":100,"value":"2871","valuePos":[{"x":232,"y":817},{"x":232,"y":831},{"x":202,"y":831},{"x":202,"y":817}],"valueProb":100},{"key":"axleNumber","keyProb":92,"value":"2","valuePos":[{"x":578,"y":825},{"x":578,"y":839},{"x":569,"y":839},{"x":569,"y":825}],"valueProb":92},{"key":"overallDimension","keyProb":100,"value":"4948×1836×1469","valuePos":[{"x":221,"y":857},{"x":222,"y":845},{"x":475,"y":850},{"x":474,"y":862}],"valueProb":100},{"key":"containerDimension","keyProb":100,"value":"","valueProb":100},{"key":"totalWeight","keyProb":100,"value":"2190","valuePos":[{"x":232,"y":904},{"x":232,"y":918},{"x":203,"y":918},{"x":203,"y":904}],"valueProb":100},{"key":"permittedWeight","keyProb":100,"value":"","valueProb":100},{"key":"passengerCapacity","keyProb":100,"value":"","valueProb":100},{"key":"tractionWeight","keyProb":100,"value":"","valueProb":100},{"key":"cabPassengerCapacity","keyProb":100,"value":"","valueProb":100},{"key":"useNature","keyProb":97,"value":"租赁","valuePos":[{"x":487,"y":968},{"x":487,"y":984},{"x":457,"y":984},{"x":457,"y":968}],"valueProb":97},{"key":"acquisitionMethod","keyProb":100,"value":"购买","valuePos":[{"x":230,"y":992},{"x":230,"y":1008},{"x":200,"y":1008},{"x":200,"y":992}],"valueProb":100},{"key":"manufactureDate","keyProb":100,"value":"2021-03-16","valuePos":[{"x":455,"y":1012},{"x":456,"y":999},{"x":529,"y":1000},{"x":529,"y":1013}],"valueProb":100},{"key":"issueAuthority","keyProb":100,"value":"上海市公安局交通警察总队","valuePos":[{"x":684,"y":895},{"x":684,"y":980},{"x":599,"y":980},{"x":599,"y":895}],"valueProb":100},{"key":"issueDate","keyProb":100,"value":"2021-04-28","valuePos":[{"x":642,"y":1018},{"x":642,"y":1002},{"x":719,"y":1007},{"x":718,"y":1022}],"valueProb":100}],"sliceRect":{"x0":23,"y0":44,"x1":795,"y1":38,"x2":793,"y2":1124,"x3":12,"y3":1106},"width":844}'),
  message?: string(name='Message', example='You are not authorized to perform this operation.'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeVehicleRegistrationResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeVehicleRegistrationResponseBody(name='body'),
}

/**
 * @summary 机动车注册登记证识别
 *
 * @param request RecognizeVehicleRegistrationRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeVehicleRegistrationResponse
 */
async function recognizeVehicleRegistrationWithOptions(request: RecognizeVehicleRegistrationRequest, runtime: $RuntimeOptions): RecognizeVehicleRegistrationResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeVehicleRegistration',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 机动车注册登记证识别
 *
 * @param request RecognizeVehicleRegistrationRequest
 * @return RecognizeVehicleRegistrationResponse
 */
async function recognizeVehicleRegistration(request: RecognizeVehicleRegistrationRequest): RecognizeVehicleRegistrationResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeVehicleRegistrationWithOptions(request, runtime);
}

model RecognizeWaybillRequest {
  url?: string(name='Url', example='https://img.alicdn.com/tfs/TB1lOe6VqL7gK0jSZFBXXXZZpXa-480-640.png'),
  body?: readable(name='body'),
}

model RecognizeWaybillResponseBody = {
  code?: string(name='Code', example='200'),
  data?: string(name='Data'),
  message?: string(name='Message', example='message'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model RecognizeWaybillResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: RecognizeWaybillResponseBody(name='body'),
}

/**
 * @summary 电子面单识别
 *
 * @param request RecognizeWaybillRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return RecognizeWaybillResponse
 */
async function recognizeWaybillWithOptions(request: RecognizeWaybillRequest, runtime: $RuntimeOptions): RecognizeWaybillResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.url)) {
    query['Url'] = request.url;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = request.body,
    stream = request.body,
  };
  var params = new OpenApiUtil.Params{
    action = 'RecognizeWaybill',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 电子面单识别
 *
 * @param request RecognizeWaybillRequest
 * @return RecognizeWaybillResponse
 */
async function recognizeWaybill(request: RecognizeWaybillRequest): RecognizeWaybillResponse {
  var runtime = new $RuntimeOptions{};
  return recognizeWaybillWithOptions(request, runtime);
}

model VerifyBusinessLicenseRequest {
  companyName?: string(name='CompanyName', description='This parameter is required.'),
  creditCode?: string(name='CreditCode', description='This parameter is required.'),
  legalPerson?: string(name='LegalPerson', description='This parameter is required.'),
}

model VerifyBusinessLicenseResponseBody = {
  data?: string(name='Data'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model VerifyBusinessLicenseResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: VerifyBusinessLicenseResponseBody(name='body'),
}

/**
 * @summary 营业执照核验
 *
 * @param request VerifyBusinessLicenseRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return VerifyBusinessLicenseResponse
 */
async function verifyBusinessLicenseWithOptions(request: VerifyBusinessLicenseRequest, runtime: $RuntimeOptions): VerifyBusinessLicenseResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.companyName)) {
    query['CompanyName'] = request.companyName;
  }
  if (!$isNull(request.creditCode)) {
    query['CreditCode'] = request.creditCode;
  }
  if (!$isNull(request.legalPerson)) {
    query['LegalPerson'] = request.legalPerson;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
  };
  var params = new OpenApiUtil.Params{
    action = 'VerifyBusinessLicense',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 营业执照核验
 *
 * @param request VerifyBusinessLicenseRequest
 * @return VerifyBusinessLicenseResponse
 */
async function verifyBusinessLicense(request: VerifyBusinessLicenseRequest): VerifyBusinessLicenseResponse {
  var runtime = new $RuntimeOptions{};
  return verifyBusinessLicenseWithOptions(request, runtime);
}

model VerifyVATInvoiceRequest {
  invoiceCode?: string(name='InvoiceCode'),
  invoiceDate?: string(name='InvoiceDate', description='This parameter is required.'),
  invoiceKind?: int32(name='InvoiceKind'),
  invoiceNo?: string(name='InvoiceNo', description='This parameter is required.'),
  invoiceSum?: string(name='InvoiceSum'),
  verifyCode?: string(name='VerifyCode'),
}

model VerifyVATInvoiceResponseBody = {
  data?: string(name='Data'),
  requestId?: string(name='RequestId', example='43A29C77-405E-4CC0-BC55-EE694AD00655'),
}

model VerifyVATInvoiceResponse = {
  headers?: map[string]string(name='headers'),
  statusCode?: int32(name='statusCode'),
  body?: VerifyVATInvoiceResponseBody(name='body'),
}

/**
 * @summary 增值税发票核验
 *
 * @param request VerifyVATInvoiceRequest
 * @param runtime runtime options for this request RuntimeOptions
 * @return VerifyVATInvoiceResponse
 */
async function verifyVATInvoiceWithOptions(request: VerifyVATInvoiceRequest, runtime: $RuntimeOptions): VerifyVATInvoiceResponse {
  request.validate();
  var query = {};
  if (!$isNull(request.invoiceCode)) {
    query['InvoiceCode'] = request.invoiceCode;
  }
  if (!$isNull(request.invoiceDate)) {
    query['InvoiceDate'] = request.invoiceDate;
  }
  if (!$isNull(request.invoiceKind)) {
    query['InvoiceKind'] = request.invoiceKind;
  }
  if (!$isNull(request.invoiceNo)) {
    query['InvoiceNo'] = request.invoiceNo;
  }
  if (!$isNull(request.invoiceSum)) {
    query['InvoiceSum'] = request.invoiceSum;
  }
  if (!$isNull(request.verifyCode)) {
    query['VerifyCode'] = request.verifyCode;
  }
  var req = new OpenApiUtil.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
  };
  var params = new OpenApiUtil.Params{
    action = 'VerifyVATInvoice',
    version = '2021-07-07',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

/**
 * @summary 增值税发票核验
 *
 * @param request VerifyVATInvoiceRequest
 * @return VerifyVATInvoiceResponse
 */
async function verifyVATInvoice(request: VerifyVATInvoiceRequest): VerifyVATInvoiceResponse {
  var runtime = new $RuntimeOptions{};
  return verifyVATInvoiceWithOptions(request, runtime);
}

